sql >> Databáze >  >> RDS >> Access

Spočítejte všechny objekty ve vaší databázi

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!


  1. Sdružování připojení na serveru .NET/SQL?

  2. Top 50 otázek k pohovoru o SQL Serveru, které si musíte připravit v roce 2022

  3. Podpora PDO pro více dotazů (PDO_MYSQL, PDO_MYSQLND)

  4. Oracle odstranění řádků z více tabulek