Le code VBA

Commencez par recopier tout le code VBA ci-dessous, dans un module standard de votre base Access (la banque de données que vous avez construite dans le précédent article, et qui contient la table tblImages).

' ---
' CHARGER TOUTES LES IMAGES D'UN DOSSIER DANS LA BASE
' ---
' Entrée : strDossier   <- Nom du dossier à parcourir.
'          strExtension <- Extension des fichiers images.
'
Sub ChargerImages( _
  ByVal strDossier As String, _
  Optional ByVal strExtension As String = "*.jpg")
 
  Dim rst As DAO.Recordset
  Dim strFichier As String
  Dim intImages As Integer
 
  ' Ajouter un \ à la fin du dossier, si nécessaire
  strDossier = AddBackslash(strDossier)
 
  ' Ouvrir la table
  Set rst = CurrentDb.OpenRecordset("tblImages", dbOpenDynaset)
 
  ' Lecture des images du dossier
  intImages = 0
  strFichier = Dir(strDossier & strExtension, vbNormal)
  While strFichier <> ""
    ' Ajouter l'image dans la table
    rst.AddNew
    rst("Nom Image") = FileNameWithoutExt(strFichier)
    rst("Nom Fichier") = strFichier
    rst("Dossier") = strDossier
    rst.Update
    intImages = intImages + 1
   
    ' On passe au fichier suivant
    strFichier = Dir
  Wend
 
  ' On ferme !
  rst.Close
  Set rst = Nothing
  MsgBox "Opération terminée !" & _
    vbCrLf & intImages & " ajoutée(s)", _
    vbInformation
End Sub

D'autres fonctions utiles

Le code qui précède fait appel à d'autres fonctions publiées sur ce blog, notamment en ce qui concerne la gestion des fichiers et des dossiers. Consultez les articles qui suivent (et recopiez les bouts de code que vous y trouverez !) :

Utiliser le code VBA

Pour "indexer" toutes les images d'un dossier, faites ceci :

  1. Faites apparaître la fenêtre Debug (CTRL + G).
  2. Tapez dans cette fenêtre quelque chose comme :
    ChargerImages "C:\Users\Hervé\Pictures", "*.jpg"
  • Le premier paramètre transmis est le dossier à inspecter (ici : façon Vista ; à vous d'aménager selon votre système).
  • Le second paramètre donne le type d'images à indexer (l'extension, donc). Vous pouvez omettre ce paramètre, dans ce cas, ce sont les images JPG qui sont prises en compte.

Bien sûr, l'indexation n'est pas aussi fine qu'une indexation manuelle. Si votre image s'appelle Nénuphars.jpg, sa description automatique devient Nénuphars. Mais rien ne vous empêche de changer ça après !

Dans un prochain article, on verra comment ajouter une boîte de sélection de dossier, pour améliorer encore tout ça !

Important
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.