Access
 sql >> Base de Dados >  >> RDS >> Access

Conte todos os objetos em seu banco de dados

Conte todos os objetos em seu banco de dados


Outro dia, nossa empresa foi encarregada de converter muitos bancos de dados do Access em vários back-ends do SQL Server. Para ter uma noção das tarefas envolvidas, precisávamos de uma maneira de contar todas as tabelas, consultas, formulários e macros em cada banco de dados.

Fiz uma pesquisa rápida na Internet, mas não gostei de nenhum dos trechos de código, então criei meu próprio pequeno programa que imprimirá as estatísticas na janela imediata:
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
Para cada tdf em CurrentDb.TableDefs
Se não for Left(tdf.Name, 4) =“MSys” Então
i =i + 1
End If
Próximo tdf
Debug.Print “Número de tabelas:” &i

‘Determinar número de consultas
Debug.Print “Número de consultas:” &CurrentDb.QueryDefs.Count

‘Determinar número de formulários
Debug.Print “Número de formulários:” &CurrentProject.AllForms.Count

'Determinar o número de Macros
Debug.Print “Número de Macros:” &CurrentProject.AllMacros.Count

‘Determinar o número de relatórios
Debug.Print “Número de relatórios:” &CurrentProject.AllReports.Count

End Sub
Algumas observações:
  • Para não contar as tabelas do sistema, faço uma iteração pela coleção TableDef e ignoro qualquer nome de tabela que comece com MSys
  • Não pude usar a coleção Form para contar os formulários, pois seus membros consistem apenas em formulários abertos.

Aproveitar!