sql >> Base de Datos >  >> RDS >> Access

Cuente todos los objetos en su base de datos

Cuente todos los objetos en su base de datos

El otro día, nuestra empresa recibió la tarea de convertir muchas bases de datos de Access a múltiples backends de SQL Server. Para tener una idea de las tareas involucradas, necesitábamos una forma de contar todas las tablas, consultas, formularios y macros en cada base de datos.

Hice una búsqueda rápida en Internet pero no me gustó ninguno de los fragmentos de código, así que creé mi propio pequeño programa que imprimirá las estadísticas en la ventana inmediata:
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 en CurrentDb.TableDefs
If Not Left(tdf.Name, 4) =“MSys” Then
i =i + 1
End If
Next tdf
Debug.Print “Número de tablas:” &i

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

‘Determinar el número de formularios
Debug.Print “Número de formularios:” &CurrentProject.AllForms.Count

‘Determinar el número de macros
Debug.Print “Número de macros:” &CurrentProject.AllMacros.Count

‘Determinar el número de informes
Debug.Print “Número de informes:” &CurrentProject.AllReports.Count

End Sub
Un par de observaciones:

  • Para no contar las tablas del sistema, itero a través de la colección TableDef e ignoro cualquier nombre de tabla que comience con MSys
  • No pude usar la colección de formularios para contar los formularios ya que sus miembros consisten solo en formularios abiertos.

¡Disfrútalo!