Contar todos los objetos en su base de datos
El otro día nuestra empresa se encargó de convertir una gran cantidad de 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.
Realicé una rápida búsqueda en Internet, pero no me gustó ninguno de los fragmentos de código, así que creé un pequeño programa que imprimirá las estadísticas inmediatas de Windows.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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 For Each tdf In CurrentDb.TableDefs If Not Left(tdf.Name, 4) = "MSys" Then i = i + 1 End If Next tdf Debug.Print "Number of tables: " & i 'Determine number of queries Debug.Print "Number of Queries: " & CurrentDb.QueryDefs.Count 'Determine number of forms Debug.Print "Number of Forms: " & CurrentProject.AllForms.Count 'Determine number of Macros Debug.Print "Number of Macros: " & CurrentProject.AllMacros.Count 'Determine number of reports Debug.Print "Number of Reports: " & CurrentProject.AllReports.Count End Sub |
Un par de observaciones:
- Para no contar las tablas del sistema, pase a través de la colección TableDef e ignore cualquier nombre de tabla que comience con MSys
- No podrá utilizar la colección de Formulario para contabilizarlos ya que sus miembros constan sólo de formularios abiertos.
¡Disfruta!
Deja una respuesta