sql >> Database teknologi >  >> RDS >> Access

Tæl alle objekter i din database

Tæl alle objekter i din database

Forleden fik vores virksomhed til opgave at konvertere en masse Access-databaser til flere SQL Server-backends. For at få en fornemmelse af de involverede opgaver havde vi brug for en måde at tælle alle tabeller, forespørgsler, formularer og makroer i hver database.

Jeg lavede en hurtig internetsøgning, men kunne ikke lide nogen af ​​kodestykkerne, så jeg lavede mit eget lille program, der vil udskrive statistikken til det øjeblikkelige vindue:
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 hver tdf i CurrentDb.TableDefs
If Not Left(tdf.Name, 4) =“MSys” Så
i =i + 1
End If
Next tdf
Debug.Print “Antal tabeller:” &i

'Bestem antallet af forespørgsler
Debug.Print "Antal forespørgsler:" &CurrentDb.QueryDefs.Count

'Bestem antallet af formularer
Debug.Print "Antal formularer:" &CurrentProject.AllForms.Count

'Bestem antallet af makroer
Debug.Print "Antal makroer:" &CurrentProject.AllMacros.Count

'Bestem antallet af rapporter
Debug.Print "Antal rapporter:" &CurrentProject.AllReports.Count

End Sub
Et par observationer:

  • For ikke at tælle systemtabellerne gentager jeg TableDef-samlingen og ignorerer ethvert tabelnavn, der starter med MSys
  • Jeg kunne ikke bruge formularsamlingen til at tælle formularerne, da dens medlemmer kun består af åbne formularer.

God fornøjelse!


  1. Langsom MySQL-starttid i GTID-tilstand? Binær logfilstørrelse kan være problemet

  2. t-sql select få alle måneder inden for en række år

  3. Modellering af en grundlæggende datastruktur til at administrere brugere, tråde og indlæg

  4. Oracle Managed ODP.NET kan ikke finde tnsnames.ora