sql >> Databasteknik >  >> RDS >> Access

Räkna alla objekt i din databas

Räkna alla objekt i din databas

Häromdagen fick vårt företag i uppdrag att konvertera många Access-databaser till flera SQL Server-backends. För att få en känsla för de involverade uppgifterna behövde vi ett sätt att räkna alla tabeller, frågor, formulär och makron i varje databas.

Jag gjorde en snabb sökning på Internet men gillade inte någon av kodsnuttarna, så jag skapade mitt eget lilla program som skriver ut statistiken till det omedelbara fönstret:
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
För varje tdf i CurrentDb.TableDefs
If Not Left(tdf.Name, 4) =“MSys” Då
i =i + 1
End If
Next tdf
Debug.Print “Antal tabeller:” &i

"Bestämma antalet frågor
Debug.Print "Antal frågor:" &CurrentDb.QueryDefs.Count

"Bestämma antal formulär
Debug.Print "Antal formulär:" &CurrentProject.AllForms.Count

"Bestämma antalet makron
Debug.Print "Antal makron:" &CurrentProject.AllMacros.Count

"Bestämma antal rapporter
Debug.Print "Antal rapporter:" &CurrentProject.AllReports.Count

End Sub
Ett par observationer:

  • För att inte räkna systemtabellerna itererar jag genom TableDef-samlingen och ignorerar alla tabellnamn som börjar med MSys
  • Jag kunde inte använda formulärsamlingen för att räkna formulären eftersom dess medlemmar endast består av öppna formulär.

Njut!


  1. Utföra revision av dataändringar med hjälp av tidstabell

  2. En översikt över kluster-till-kluster-replikering

  3. Hur DATE() fungerar i MariaDB

  4. Hur man aktiverar komprimering på en befintlig tabell i SQL Server (T-SQL)