Tipp 1.7 - Anzahl Access-Objekte

Wie kann ich die Gesamtanzahl eines bestimmten Access-Objektes ermitteln?

Mit dieser Funktion können Sie die Gesamtanzahl eines bestimmten Access-Objektes ermitteln. 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.

ab Access 2000Hinweis: Durch spezielle Anweisungen können Sie diese Funktion erst ab Access 2000 einsetzen.

Beispiel:

Option Explicit
 
Public Enum eJetObjectType
  A2XTypeTable = 0
  A2XTypeQuery = 1
  A2XTypeRelation = 6
  A2XTypeForm = 2
  A2XTypeReport = 3
  A2XTypeMacro = 4
  A2XTypeModule = 5
End Enum
 
Public Function GetA2XObjectCount( _
                peType As eJetObjectType) _
                As Long
  '// =====================================================
  '// Methode   | Ermittelt die Gesamtanzahl des ge-
  '//           | wünschten Objekttypes
  '//           | Verweis auf DAO 3.X sollte gesetzt sein
  '// -----------------------------------------------------
  '// Parameter | pEType - Objekttyp
  '//           |          Das Enum eJetObjectType sollte
  '//           |          vorab auf Modulebene deklariert
  '//           |          sein!
  '// -----------------------------------------------------
  '// Rückgabe  | Long - Gesamtanzahl
  '// -----------------------------------------------------
  '// Erstellt  | Manuela Kulpa
  '//           | EDV Innovation & Consulting - Dormagen
  '// =====================================================
 
  On Error GoTo HandleErr
  Dim db As DAO.Database
  Dim lCount As Long
 
  Set db = CurrentDb
 
  With db
    Select Case peType
      Case A2XTypeTable
        lCount = .TableDefs.Count
      Case A2XTypeQuery
        lCount = .QueryDefs.Count
      Case A2XTypeRelation
        lCount = .Relations.Count
      Case A2XTypeForm
        lCount = .Containers!Forms.Documents.Count
      Case A2XTypeReport
        lCount = .Containers!Reports.Documents.Count
      Case A2XTypeMacro
        lCount = .Containers!Scripts.Documents.Count
      Case A2XTypeModule
        lCount = .Containers!Modules.Documents.Count
    End Select
  End With
 
  GetA2XObjectCount = lCount
 
HandleExit:
  If Not db Is Nothing Then Set db = Nothing
  Exit Function
 
HandleErr:
  Select Case Err.Number
    Case Else
      MsgBox "Fehler " & Err.Number & ": " & _
             Err.Description, vbCritical, _
             "basInfo.GetA2XObjectCount"
  End Select
  Resume HandleExit
End Function