Alimenter une banque d’images automatiquement

Cet article fait suite à l’article Gérer une banque d’images, dans lequel vous avez pu voir comment stocker une liste d’images dans une table, pour l’afficher ensuite dynamiquement sur un formulaire ou sur un état. Mais pourquoi alimenter la table manuellement, alors qu’on peut le faire à l’aide d’un peu de VBA ?

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

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.

Vous aimerez aussi...

3 réponses

  1. philo811 dit :

    tout comme tintin ce bout de code m interesse beaucoup pour infos j utilise la bq image pour la gestion des mails entrant au lieu d indexer du .jpg elle indexe du .eml

  2. Hervé Inisan dit :

    Tintin > Oui, c’est possible. Dès que j’ai un moment, j’ajouterai sur le blog le bout de code qui va bien.

  3. TINTIN dit :

    Bonjour et merci pour ce code qui fonctionne à merveille.

    J’ai cependant une petite requête : serait-il possible d’y ajouter une fonction capable de n’indexer que les nouvelles images. Une bribe de code qui exluerait les fichiers déjà dans la table ? Et si oui, quel pourrait être ce code ?

    Merci d’avance de votre aide et meilleures salutations.

    TINTIN

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *