Sauvegarder toutes les requêtes de la base de données
Peut-on sauvegarder, dans un fichier texte, le code SQL de toutes les requêtes de la base ?
Le principe
Si je réponds « Non » à la question du dessus, l’article se termine là, hop c’est fini… 🙂
Vous vous doutez bien qu’on peut effectivement enregistrer toutes les requêtes SQL de votre base Access dans un fichier ! On va le faire avec un peu de VBA…
Le code
Recopiez la procédure qui suit dans un module standard de votre base de données.
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
' --- ' SAUVEGARDE REQUETES ' --- ' Sub SauvegarderRequetes( _ ByVal strChemin As String, _ Optional ByVal blnCommentaires As Boolean = True) ' Quelques variables Dim db As dao.Database Dim qdf As dao.QueryDef Dim intFichier As Integer ' Ouvrir le fichier On Error GoTo SauvegarderErr intFichier = FreeFile Open strChemin For Output As #intFichier ' Parcourir toutes les requêtes ' et les écrire dans le fichier Set db = CurrentDb For Each qdf In db.QueryDefs If Left(qdf.Name, 1) <> "~" Then ' Commentaire If blnCommentaires Then Print #intFichier, "-- Requête : " & qdf.Name End If ' Code de la requête Print #intFichier, qdf.SQL End If Next ' On ferme ! Close #intFichier Set db = Nothing MsgBox "Opération terminée !", vbInformation Exit Sub SauvegarderErr: MsgBox "Erreur : " & err.Description, vbExclamation Exit Sub End Sub |
L’exemple de code ci-dessus fait appel à la bibliothèque DAO (Microsoft DAO Object Library). Cette bibliothèque doit être associée à votre base de données pour que le programme fonctionne.Pour plus de détails sur les références, consultez cette page.
Tester le code
Pour déclencher la sauvegarde, vous pouvez :
- Faire apparaître la fenêtre Exécution (
Ctrl
+G
). - Y taper quelque chose comme ceci (le chemin doit être valide, et il diffère selon que vous êtes sur Windows XP ou Windows Vista / 7/ 8) :
SauvegarderRequetes "C:\Users\VOTRE_NOM\DesktopTest.sql"
- Valider par la touche
[Entrée]
.
Dans mon cas, j’obtiens sur le Bureau Windows un fichier Test.sql
qui contient ce listing :
- Par défaut, la procédure ajoute des commentaires SQL (c’est quand même plus facile pour se retrouver dans les requêtes !). Access ne gère pas ces commentaires, mais vous trouverez dans le Grenier, un article qui permet d’importer ce type de fichiers (voir : Importation d’un fichier SQL).
- Et si vous ne souhaitez vraiment pas les commentaires, vous pouvez appeler la procédure de cette manière :
SauvegarderRequetes "C:\Users\VOTRE_NOM\DesktopTest.sql", False
Le fichier n’est pas obligé d’avoir l’extension .sql
, vous pouvez utiliser .txt
si vous le souhaitez. C’est juste plus pratique :
- Pour différencier vos fichiers.
- Si vous ouvrez le fichier dans un éditeur de texte du type Notepad++ ou PSPad, qui appliquera la coloration syntaxique automatiquement.