Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Nom et chemin de la base de données
Nous débutons ici une nouvelle série concernant le
développement en Visual Basic Access. Dans ce premier volet, il est question de récupérer les
informations de la base de données en cours. Ces informations sont souvent nécessaires, notamment pour accéder aux enregistrements de ses tables par le
code VBA.
Sur l'exemple illustré par la capture, l'utilisateur clique sur un bouton. Aussitôt, le
nom de la base de données, son
chemin d'accès et
son chemin complet sont affichés dans
trois zones de texte respectives.
Base de données à télécharger
Pour la mise en place de cette
astuce VBA, nous proposons de récupérer une petite
base de données offrant un
formulaire avec ce
bouton et ces trois
zones de texte.
Nous débouchons sur une interface proposant effectivement un
bouton et
trois zones de texte. Mais bien sûr à ce stade, si vous cliquez sur le
bouton, rien ne se produit encore. Les
informations de base de données ne sont pas rapatriées.
Les noms des contrôles
Nous allons devoir inscrire des données dans ces
zones de saisie. Pour que le
code VBA les pilote, nous devons connaître leurs
noms d'objet.
- A gauche du ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans les propositions, choisir le mode création,
- Sur le formulaire en conception, cliquer sur la première zone de texte pour la sélectionner,
- Puis, activer l'onglet Autres de sa feuille de propriétés,
Si elle n'est pas visible dans votre environnement, vous devez l'afficher. Pour cela, il suffit de cliquer sur le
bouton Feuille de propriétés dans le
ruban Création.
Dès lors, en consultant son
attribut Nom, vous constatez que cette première zone de texte est nommée
nomBdd.
En cliquant tour à tour sur les deux autres zones de saisie, vous constatez qu'elles portent les intitulés respectifs
cheminBdd et
cheminComplet.
Le nom de la base de données
L'information que nous souhaitons tout d'abord récupérer concerne le
nom du fichier de la
base de données. Il doit être inscrit dans la première zone de texte (nomBdd)
au clic sur le bouton. En conséquence, un
code VBA doit être associé à ce bouton.
- Cliquer sur le bouton pour le sélectionner,
- Activer alors l'onglet Evénement de sa feuille de propriétés,
- Cliquer ensuite sur le petit bouton à l'extrémité de son événement Au clic,
- Dans la boîte de dialogue, choisir le générateur de code et valider par le bouton Ok,
Nous basculons ainsi dans l'
éditeur de code VBA Access, plus précisément entre les bornes de la
procédure événementielle Commande2_Click.
Commande2 est le nom du bouton. Le code que nous y développerons se déclenchera donc
au clic sur ce bouton. A ce titre et comme pour tout contrôle, il aurait été plus judicieux de lui attribuer un nom explicite comme
recuperer par exemple. Mais comme ce dernier ne doit pas être piloté par le
VBA, nous choisissons de le conserver ainsi.
- Entre les bornes de cette procédure, ajouter l'instruction VBA suivante :
nomBdd.Value = Application.CurrentProject.Name
Value est la propriété d'une zone de texte qui permet d'accéder à son contenu. C'est ainsi que nous l'affectons au
nom de la base de données. En effet, l'
objet enfant CurrentProject de l'
objet Application désigne la
base de données en cours. Dès lors, il offre la
propriété Name qui restitue le
nom de cette
base de données et c'est ce que nous proposons de constater.
- Enregistrer les modifications(CTRL + S) et revenir sur le formulaire (ALT + Tab),
- Puis, exécuter ce dernier avec la touche F5 du clavier,
- Dès lors, cliquer sur le bouton de ce formulaire,
Comme vous pouvez l'apprécier, le
nom de la base de données est parfaitement restitué dans la première zone de texte.
Le chemin d'accès à la base de données
Nous l'avons constaté, c'est l'
objet enfant CurrentProject de l'
objet Application qui désigne la
base de données en cours. Et c'est une autre de ses
propriétés qui renseigne sur le
chemin d'accès à la
base de données.
- Réaliser le raccourci clavier ALT + Tab pour revenir dans l'éditeur VBA Access,
- A la suite de l'instruction précédente, ajouter l'instruction VBA suivante :
cheminBdd.Value = Application.CurrentProject.Path
C'est naturellement la
propriété enfant Path qui donne l'information sur le chemin d'accès.
- Enregistrer les modifications puis revenir sur le formulaire en exécution (ALT + Tab),
- Cliquer de nouveau sur le bouton,
Comme vous pouvez le constater, nous récupérons bien l'information supplémentaire sur le chemin d'accès que nous greffons dans la deuxième zone de texte.
Le chemin complet
Désormais, pour reconstituer le
chemin d'accès complet à la
base de données, pour la désigner précisément, il suffit d'assembler les deux informations précédentes.
- Réaliser le raccourci ALT + Tab pour revenir dans l'éditeur VBA Access,
- A la suite de l'instruction précédente, ajouter la troisième instruction VBA suivante :
cheminComplet.Value = Application.CurrentProject.Path & "\" & Application.CurrentProject.Name
Nous concaténons (&) donc les deux résultats précédents. Dans l'ordre, c'est le
chemin d'accès que nous assemblons avec le
nom de la base de données. Mais surtout, nous n'oublions pas d'interposer un antislash (\) pour bien entrer dans le dossier en question et ainsi pointer sur le fichier.
- Enregistrer les modifications et basculer sur le formulaire en exécution,
- Puis, cliquer de nouveau sur le bouton,
Nous obtenons bien le
chemin d'accès complet à la
base de données. Et cette information vient s'inscrire en complément dans la troisième zone de texte que nous avons désignée par le
code VBA.
Pourtant et c'est tout l'intérêt de ces
astuces, il existe une méthode plus simple et plus directe pour obtenir ce
chemin d'accès. L'
objet Application offre une
méthode qui permet de pointer dynamiquement et précisément sur la
base de données en cours. Elle se nomme
CurrentDb. Grâce à elle et à sa
propriété Name, nous pouvons récolter directement ce
chemin.
- Revenir dans l'éditeur VBA Access,
- Préfixer la troisième instruction d'une apostrophe pour la passer en commentaire,
- Puis, Ã la suite du code, ajouter la nouvelle instruction VBA suivante :
Private Sub Commande2_Click()
nomBdd.Value = Application.CurrentProject.Name
cheminBdd.Value = Application.CurrentProject.Path
'cheminComplet.Value = Application.CurrentProject.Path & "\"& Application.CurrentProject.Name
cheminComplet.Value = Application.CurrentDb.Name
End Sub
Maintenant, si vous cliquez une dernière fois sur le
bouton du formulaire, pourquoi pas après l'avoir fermé et rouvert, vous constatez que vous récoltez exactement les mêmes informations. Mais concernant le
chemin complet, nous avons découvert une méthode beaucoup plus simple pour le livrer.