Problemstellung:
Für 32Bit und 64Bit Office Versionen
Wie ermittle ich ein DB-Objekt in der aktuellen DB?
Public Function ExistObject(Objektname As String, Typ As Integer) As Boolean '******************************************* 'Name: ExistObject (Function) 'Purpose: ermittelt ob ein Objekt existiert 'Author: 'Date: 'Inputs: Objektname = Name des Objektes, Typ = ObjektTyp 'Output: '******************************************* On Error GoTo Err Dim db As DAO.Database Dim rs As DAO.Recordset Dim ObjTyp As Integer ExistObject = 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 db = CurrentDb Set rs = db.OpenRecordset("SELECT Name, Type FROM MSysObjects " & _ "WHERE Name = '" & Objektname & "' " & _ "AND Type = " & ObjTyp) If Not rs.EOF Then rs.MoveLast ExistObject = IIf(rs.RecordCount = 0, False, True) rs.Close Set rs = Nothing db.Close Set db = Nothing Exit_Here: Exit Function Err: Dim strErrString As String strErrString = "Error Information..." & vbCrLf strErrString = strErrString & "Error#: " & Err.Number & vbCrLf strErrString = strErrString & " Description: " & Err.Description & vbCrLf MsgBox strErrString, vbCritical + vbOKOnly, _ "Error in Function: ExistObject" Resume Exit_Here End Function
Der Funktion wird der Objektname und der -Typ übergeben.
Der Rückgabewert ist True bei Objekt vorhanden sonst False
Aufruf:
Dim x As Boolean x = ExistObject("tbl_Test", 0)
Ist die Tabelle "tbl_Test" vorhanden ist x = True
Ähnliche Artikel
Weiterlesen...