Access
 sql >> Datenbank >  >> RDS >> Access

Zählen Sie alle Objekte in Ihrer Datenbank

Zählen Sie alle Objekte in Ihrer Datenbank

Neulich wurde unser Unternehmen beauftragt, viele Access-Datenbanken in mehrere SQL Server-Backends zu konvertieren. Um ein Gefühl für die damit verbundenen Aufgaben zu bekommen, brauchten wir eine Möglichkeit, alle Tabellen, Abfragen, Formulare und Makros in jeder Datenbank zu zählen.

Ich habe eine schnelle Internetsuche durchgeführt, aber keines der Code-Snippets hat mir gefallen, also habe ich mein eigenes kleines Programm erstellt, das die Statistiken direkt im Fenster ausgibt:
Public Sub CountObjects()
Dim qdf As DAO.QueryDef
Dim obj As Object
Dim tdf As DAO.TableDef
Dim i As Long

i =0
Debug.Print CurrentDb.TableDefs.Count
For Each tdf In CurrentDb.TableDefs
If Not Left(tdf.Name, 4) =„MSys“ Then
i =i + 1
End If
Next tdf
Debug.Print „Number of tables:” &i

‘Anzahl Abfragen ermitteln
Debug.Print „Number of Queries:” &CurrentDb.QueryDefs.Count

‚Anzahl Formulare ermitteln
Debug.Print „Anzahl Formulare:“ &CurrentProject.AllForms.Count

‘Anzahl der Makros bestimmen
Debug.Print “Number of Macros:” &CurrentProject.AllMacros.Count

‘Anzahl der Berichte ermitteln
Debug.Print “Number of Reports:” &CurrentProject.AllReports.Count

End Sub
Ein paar Beobachtungen:

  • Um die Systemtabellen nicht zu zählen, iteriere ich durch die TableDef-Sammlung und ignoriere alle Tabellennamen, die mit MSys beginnen
  • Ich konnte die Formularsammlung nicht zum Zählen der Formulare verwenden, da ihre Mitglieder nur aus offenen Formularen bestehen.

Viel Spaß!