Accéder au contenu principal

Documenter sa base de données Access

Edit 31/10/2012: nouvelle version du rapport, incluant les objets cachés, et incluant la table cible pour les requêtes DELETE.

Que l'on récupère un base existante, ou que l'on veuille documenter ses propres réalisations, il est souvent utile de pouvoir imprimer une synthèse des objets d'une base données Access.
Pour ce faire, voici un rapport qu'il suffit d'importer dans votre base de données et de lancer, et qui affiche la liste de tous les objets de la base courante, avec un certain nombre d'informations supplémentaires:

  • table cible pour les requêtes d'action
  • nombre d'enregistrements pour les tables Access locales ou liées. Ce point est optionnel, via une boîte de dialogue au lancement du rapport. En effet pour les grosses bases ou les réseaux lents, cela peut ralentir l'exécution du rapport.
  • détails des DSN pour les tables liées ODBC
    Les détails des DSN permettent de vérifier que toutes les tables appartenant au même serveur possèdent bien exactement la même chaîne de définition. Faute de cela, Access n'optimisera pas les JOINS entre ces tables, et cela peut se révéler très coûteux en performance sur les grosses requêtes.

La base à télécharger contient aussi un second rapport à importer, qui permet de lister les spécifications d'import/export présentes.

Téléchargement: cliquez ici.

Commentaires

Posts les plus consultés de ce blog

ROW_NUMBER OVER PARTITION en Access

Ceux qui ont l'habitude de travailler avec une "grosse" base données comme SQL Server / Oracle / PostGreSQL, sont parfois frustrés face à certaines lacunes du SQL d'Access.   Prenons par exemple: ROW_NUMBER() OVER PARTITION, dont l'absence rend certaines requêtes très compliquées.   J'ai donc écrit une petite fonction VBA qui peut être appelée depuis un query Access et qui simulera assez bien ce ROW_NUMBER() OVER PARTITION.   Notez que ceci ne fonctionnera pas correctement dans une vue ou un formulaire interactif. Par contre comme source d'un rapport ou d'un export Excel, c'est impeccable.   En pratique il est préférable d'initialiser la fonction avec une chaîne de caractères "improbable" avant de lancer le rapport, comme indiqué dans le code.

Calculate MAX of a list in VBA

Strangely such a function is not available in VBA. Here is one that works with any number of strings or numbers. Function Largest(ParamArray a() As Variant) As Variant 'returns the largest element of list 'List is supposed to be consistent: all nummbers, dates, strings. 'Nulls are allowed, but not in first position. Eventually provide a first low dummy value 'e.g:   largest(2,6,-9,7,3)         -> 7 '       largest("d", "z", "c", "x") -> "z" 'by Patrick Honorez --- www.idevlop.com     Dim result As Variant     Dim i As Integer          result = a(LBound(a))          For i = LBound(a) + 1 To UBound(a)         If result < Nz(a(i), result) Then             result = a(i)         End If     Next i     Largest = result End Function