Tipp 1.16 - Ist Systemobjekt
Wie kann ich ermitteln, ob das angegebene Datenbankobjekt ein Systemobjekt ist?
Mit dieser Funktion können Sie ermitteln, ob das angegebene Datenbankobjekt ein Systemobjekt ist. Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Hinweis: Durch spezielle Anweisungen können Sie diese Funktion erst ab Access 2000 einsetzen.
Beispiel:
Public Function A2XIsSysObject(paob As AccessObject) _ As Boolean '// ===================================================== '// Methode | Überprüft, ob das angegebene Objekt ein ' Systemobjekt ist '// ----------------------------------------------------- '// Parameter | paob - Angegebenes Accessobjekt '// ----------------------------------------------------- '// Rückgabe | Boolean - True/Systemobjekt False/keins '// ----------------------------------------------------- '// Erstellt | Manuela Kulpa '// | EDV Innovation & Consulting - Dormagen '// ----------------------------------------------------- '// Beispielaufruf: ' Debug.Print A2XIsSysObject(CurrentData.AllTables( _ ' "MSysAccessObjects")) ' Tabellen: CurrentData.AllTables("Name") ' Abfragen: CurrentData.AllQueries("Name") ' Formulare: CurrentProject.AllForms("Name") ' Berichte: CurrentProject.AllReports("Name") ' DP: CurrentProject.AllDataAccessPages("Name") ' Makros: CurrentProject.AllMacros("Name") ' Module: CurrentProject.AllModules("Name") '// ===================================================== On Error GoTo A2XIsSysObject_Error Const clSYSTEMOBJECT1 As Long = &H80000000 Const clSYSTEMOBJECT2 As Long = &H2 Const csUSYS As String = "USys" Const csSYSSQL As String = "~sq_" Dim sShortName As String sShortName = Left$(paob.Name, 4) ' Standardüberprüfung auf eigene Systemobjekte bzw. ' interne Accessabfragen If sShortName = csUSYS Or sShortName = csSYSSQL Then A2XIsSysObject = True Else ' Überprüfung auf besondere Bits und entsprechend ' gesetzten Attributen If (paob.Attributes And clSYSTEMOBJECT1) = _ clSYSTEMOBJECT1 Then A2XIsSysObject = True Else If (paob.Attributes And clSYSTEMOBJECT2) = _ clSYSTEMOBJECT2 Then A2XIsSysObject = True End If End If End If A2XIsSysObject_Exit: On Error GoTo 0 Exit Function A2XIsSysObject_Error: Select Case Err.Number Case Else MsgBox "Fehler " & Err.Number & ": " & _ Err.Description, vbCritical, _ "modInfo.A2XIsSysObject" End Select Resume A2XIsSysObject_Exit End Function