Problemstellung:
Für 32Bit und 64Bit Office Versionen
Wie ermittle ich ein DB-Objekt in einer fremden DB?
Public Function ForeignExistObject(strDBPfad As String, _ strObjektname As String, _ Typ As Integer, _ Optional strPasswort As String = "") _ As Boolean '******************************************* 'Name: ForeignExistObject (Function) 'Purpose: ermittelt ob ein Objekt in einer anderen DB existiert 'Author: 'Date: 'Inputs: Objektname = Name des Objektes, Typ = ObjektTyp, ' strPasswort=DB-Kennwort 'Output: '******************************************* On Error GoTo Err Dim wsp As DAO.Workspace Dim db As DAO.Database Dim rs As Recordset Dim ObjTyp As Integer Dim strPWD As String strPWD = ";pwd=" & strPasswort Set wsp = DBEngine.Workspaces(0) Set db = wsp.OpenDatabase(strDBPfad, False, False, strPWD) ForeignExistObject = False Select Case Typ Case 0: ObjTyp = 1 'Tabellen Case 1: ObjTyp = 5 'Abfragen Case 2: ObjTyp = -32768 'Formulare Case 3: ObjTyp = -32764 'Berichte Case 4: ObjTyp = -32766 'Makro Case 5: ObjTyp = -32761 'Module Case 6: ObjTyp = 6 'eingebundene Tabellen Case 7: ObjTyp = 4 'eingebundene ODBC-Tabellen Case 8: ObjTyp = -32756 'Datenzugriffseite End Select Set rs = dba.OpenRecordset("SELECT Name, Type FROM MSysObjects " & _ "WHERE Name = '" & Objektname & "' " & _ "AND Type = " & ObjTyp) If Not rs.EOF Then rs.MoveLast ForeignExistObject = IIf(rs.RecordCount = 0, False, True) rs.Close Set rs = Nothing db.Close Set db = Nothing ExitHere: Exit Function Err: Dim strErrString As String strErrString = "Error Information..." & vbCrLf strErrString = strErrString & "Error#: " & Err.Number strErrString = strErrString & "Description: " & Err.Description MsgBox strErrString, vbCritical + vbOKOnly, _ "Error in Function: ForeignExistObject" Resume ExitHere End Function
Der Funktion wird der komplette Pfad und Dateiname der MDB-Datei, der Objektname und
der -Typ übergeben.
Optional noch das DB-Kennwort wenn vorhanden.
Der Rückgabewert ist True bei Objekt vorhanden sonst False
Aufruf:
Dim x As Boolean x = ForeignExistObject("C:\Test\Test.mdb", "frm_Test", 2)
Ist das Formular"frm_Test" in der DB C:\Test\Test.mdb vorhanden ist x = True
Ähnliche Artikel
Weiterlesen...