Banque d’images : compléter la liste d’images

On continue la série Gérer une banque d’images sur Access (cliquez ici pour consulter la liste des articles de cette saga, bientôt autant d’épisodes que dans les Feux de l’Amour, une référence !).

Dans l’article Alimenter une banque d’images automatiquement, je donnais un bout de code qui recense les images d’un dossier et stocke leur chemin dans une table Access. Mais ce code VBA recense systématiquement tout le dossier à chaque fois. En d’autres termes, si vous lancez le programme 2 fois sur le même dossier, vous obtenez 2 fois la même liste d’images dans la table.

Dans cet article, vous trouverez une version améliorée : cette fois, le programme n’indexe les images qu’une seule fois dans le dossier (en se basant uniquement sur le nom du fichier Image et le chemin du dossier). A la fin de la procédure, il signale le nombre d’images recensées, et éventuellement le nombre de doublons ignorés.

Avant toute chose

Le code qui suit annule et remplace la procédure ChargerImages de l’article Alimenter une banque d’images automatiquement. Vous aurez besoin de tout le reste de l’article original pour que les choses fonctionnent correctement. Du coup, pensez à le consulter pour tout le reste de la mise en œuvre.

Si vous comparez les 2 portions de code, vous verrez que l’essentiel se joue au niveau du FindFirst qui cherche dans la table si une combinaison Image/Dossier de même nom existe déjà. Si c’est le cas, NoMatch prend la valeur False, et on se contente de décompter un doublon et de passer. Dans le cas où NoMatch vaut True, aucune correspondance n’a été trouvée, on peut donc ajouter l’image dans la table.

Et je voudrais bien savoir qui, chez Microsoft, a décidé de formuler le NoMatch de façon négative, ce qui ne simplifie pas la lecture du code… et mes explications ! 😉

Le code VBA

Vous aimerez aussi...

Laisser un commentaire

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