Ajouter un sélecteur de dossier à la banque d’images
Cet article continue la série sur les banques d’images dans Access. On en était resté à l’alimentation automatique de la banque d’images à l’aide d’un bout de code VBA. Mais à ce stade, il faut encore donner le nom du dossier dans le code, ce qui n’est pas souple pour l’utilisateur.
Pour cet épisode, on va faire un cross-over 🙂 entre la série sur les banques d’images et celle sur la gestion des fichiers. Notamment cet article qui détaille comment afficher un sélecteur de dossier dans Access. L’idée étant de permettre à l’utilisateur de sélectionner le dossier d’images qui l’intéresse, et de déclencher l’indexation du dossier ensuite, automatiquement.
Résumé des épisodes précédents
Prenez le temps de relire les articles ci-dessous, et de récupérer tous les bouts de code utiles, si vous ne l’avez pas déjà fait ! Pensez aussi à cocher les bonnes références dans votre projet VBE (tout ça est détaillé dans les épisodes précédents).
- Épisode 1 : Gérer une banque d’images dans Access
ou : Comment afficher, sur un formulaire, des images externes à la base de données. - Épisode 2 : Alimenter une banque d’images automatiquement.
ou : Comment alimenter la banque d’images automatiquement par VBA. - Boîte de dialogue pour sélectionner un dossier
Episode 3
- Reprenez la base de données que vous avez créée au 1er épisode.
- Ouvrez le module standard où vous aviez déjà tapé du code VBA.
- Ajoutez cette portion de code :
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 |
' --- ' SELECTION D'UN DOSSIER IMAGES ' --- ' Sub SelectionDossierImages() Dim fd As Office.FileDialog Dim strDossier As String ' Créer un objet FileDialog Set fd = Application.FileDialog(msoFileDialogFolderPicker) ' Titre de la boîte fd.Title = "Sélectionnez un dossier..." ' Afficher la boîte et traiter le résultat If fd.Show() Then ' Chemin du dossier sélectionné strDossier = fd.SelectedItems(1) ' Indexer toutes les images JPG et BMP du dossier ChargerImages strDossier, "*.jpg" ChargerImages strDossier, "*.bmp" End If Set fd = Nothing End Sub |
Toutes les explications sont normalement dans les articles précédents. Seule nouveauté : une fois que l’utilisateur a sélectionné un dossier contenant des images, on appelle la procédure ChargerImages
(cf. épisode 2), pour indexer successivement les images JPG et BMP.