VBA : condition si fichier inexistant

Résolu/Fermé
subarud Messages postés 12 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 17 avril 2009 - 7 mars 2008 à 23:27
subarud Messages postés 12 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 17 avril 2009 - 8 mars 2008 à 01:12
Bonjour,

J'ai crée une macro dans access pour afficher une image dans le formulaire : la macro récupère le nom inscrit dans la clé pour chaque enregistrement et affiche l'image qui porte le nom de cette clé dans le formulaire.

Cependant, pour éviter des erreurs lorsque l'image n'existe pas, je veux créer un "if" qui affiche une image par défaut quand le fichier image portant le nom de la clé n'existe pas.

J'ai essayé d'utiliser .FileExists, mais ce n'est pas apparemment quelque chose qui permet de vérifier si le fichier existe ou non.

Pouvez-vous m'aider ?

1 réponse

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 210
7 mars 2008 à 23:37
Bonsoir,

tu peux peut-être regarder du coté de FileSearch et FoundFiles
eric
0
subarud Messages postés 12 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 17 avril 2009 5
8 mars 2008 à 00:24
Non, apparemment, ça ne va pas, il me renvoie quand même une erreur quand le nom de la clé ne correspond pas à un nom d'image.
0
subarud Messages postés 12 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 17 avril 2009 5 > subarud Messages postés 12 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 17 avril 2009
8 mars 2008 à 01:12
J'ai finalement trouvé la solution, que je soumets ici

Private Sub Form_Current()
Dim fName As String
Dim c As String
' on récupère le chemin du répertoire de la base de données dans la
'variable c
c = Application.CurrentProject.Path
'On indique que la variable fName correspond à une image de type jpg
'dans le répertoire de la base de donnée, portant le même nom que le
' champ "num" (qui est la clé de la table
fName = (c & "\Images\" & [num] & ".jpg")
'On indique que si la clé a la valeur par défaut, c'est à dire
' que l'enregistrement n'a pas encore été rempli, le formulaire
'doit afficher l'image "logo.gif" par défaut
If num.Value = "saisir nom" Then
fName = (c & "\Images\logo.gif")
End If
'On indique enfin qu'en cas d'erreur, c'est à dire si la macro
'ne trouve pas d'image à afficher, on doit aller au programme
'intitulé erreur, un peu plus bas
On Error GoTo erreur
'on spécifie que l'image dont le cadre est appellé "doll" dans le
' prend la valeur de fName et doit être affichée
[doll].Picture = fName
[doll].Visible = True



Exit Sub

'mini-programme erreur : en cas d'erreur d'affichage d'image, la
'macro doit afficher l'image logo.gif
erreur:

fName = (c & "\Images\logo.gif")
[doll].Picture = fName
[doll].Visible = True
End Sub





0