Access
 sql >> Base de données >  >> RDS >> Access

Comptez tous les objets de votre base de données

Compter tous les objets de votre base de données

L'autre jour, notre entreprise a été chargée de convertir de nombreuses bases de données Access en plusieurs backends SQL Server. Pour avoir une idée des tâches impliquées, nous avions besoin d'un moyen de compter toutes les tables, requêtes, formulaires et macros dans chaque base de données.

J'ai fait une recherche rapide sur Internet mais je n'aimais aucun des extraits de code, j'ai donc créé mon propre petit programme qui affichera les statistiques dans la fenêtre immédiate :
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
Pour chaque tdf dans CurrentDb.TableDefs
If Not Left(tdf.Name, 4) ="MSys" Then
i =i + 1
End If
Next tdf
Debug.Print « Nombre de tables :» &i

'Déterminer le nombre de requêtes
Debug.Print "Nombre de requêtes : " &CurrentDb.QueryDefs.Count

‘Déterminer le nombre de formulaires
Debug.Print « Nombre de formulaires :» &CurrentProject.AllForms.Count

'Déterminer le nombre de macros
Debug.Print "Nombre de macros : " &CurrentProject.AllMacros.Count

'Déterminer le nombre de rapports
Debug.Print "Nombre de rapports : " &CurrentProject.AllReports.Count

End Sub
Quelques remarques :

  • Afin de ne pas compter les tables système, je parcours la collection TableDef et j'ignore tout nom de table commençant par MSys
  • Je n'ai pas pu utiliser la collection Form pour compter les formulaires, car ses membres se composent uniquement de formulaires ouverts.

Amusez-vous !