Spočítejte všechny objekty ve vaší databázi
Onehdy byla naše společnost pověřena převedením velkého množství databází Accessu na více serverů SQL Server. Abychom získali smysl pro související úkoly, potřebovali jsme způsob, jak spočítat všechny tabulky, dotazy, formuláře a makra v každé databázi.
Provedl jsem rychlé vyhledávání na internetu, ale nelíbily se mi žádné úryvky kódu, tak jsem vytvořil svůj vlastní malý program, který vytiskne statistiky do okamžitého okna:
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
Pro každý tdf v CurrentDb.TableDefs
If Not Left(tdf.Name, 4) =“MSys” Then
i =i + 1
End If
Další tdf
Ladění. Tisk „Počet tabulek:“ &i
‘Určit počet dotazů
Debug.Print „Počet dotazů:“ a CurrentDb.QueryDefs.Count
‘Určit počet formulářů
Debug.Print „Number of Forms:” &CurrentProject.AllForms.Count
‘Určit počet maker
Debug.Print „Number of Macros:” &CurrentProject.AllMacros.Count
‘Určit počet přehledů
Debug.Print “Number of Reports:” &CurrentProject.AllReports.Count
End Sub
Pár postřehů:
- Abychom nepočítali systémové tabulky, iteruji kolekci TableDef a ignoruji jakýkoli název tabulky, který začíná MSys
- Nemohl jsem použít kolekci formulářů k počítání formulářů, protože její členové se skládají pouze z otevřených formulářů.
Užijte si to!