sql >> Database >  >> RDS >> Access

Tel alle objecten in uw database

Tel alle objecten in uw database

Onlangs kreeg ons bedrijf de taak om veel Access-databases om te zetten naar meerdere SQL Server-backends. Om een ​​idee te krijgen van de betrokken taken, hadden we een manier nodig om alle tabellen, query's, formulieren en macro's in elke database te tellen.

Ik heb snel op internet gezocht, maar vond geen van de codefragmenten leuk, dus heb ik mijn eigen kleine programma gemaakt dat de statistieken naar het directe venster zal afdrukken:
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
Voor elke tdf in CurrentDb.TableDefs
If Not Left(tdf.Name, 4) =“MSys” Then
i =i + 1
End If
Volgende tdf
Debug.Print “Aantal tabellen:” &i

'Bepaal het aantal zoekopdrachten
Debug.Print "Aantal zoekopdrachten:" &CurrentDb.QueryDefs.Count

'Bepaal het aantal formulieren
Debug.Print "Aantal formulieren:" &CurrentProject.AllForms.Count

'Bepaal het aantal macro's
Debug.Print "Aantal macro's:" &CurrentProject.AllMacros.Count

'Bepaal het aantal rapporten
Debug.Print "Aantal rapporten:" &CurrentProject.AllReports.Count

End Sub
Een paar opmerkingen:

  • Om de systeemtabellen niet te tellen, doorloop ik de TableDef-verzameling en negeer ik elke tabelnaam die begint met MSys
  • Ik kon de formulierverzameling niet gebruiken om de formulieren te tellen, aangezien de leden alleen uit open formulieren bestaan.

Geniet ervan!


  1. Hoe pg_sleep_for() werkt in PostgreSQL

  2. Mountain Lion Postgres kon geen verbinding maken

  3. Hoe kan ik dubbele rijen verwijderen?

  4. Rijverschuiving in SQL Server