Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lien photos état

8 réponses
Avatar
jfd
Bonsoir
Access 2003
Pour affichage photos liées dans un état j’utilise ce code.
Affichage de la photo si chemin = OK
Non visible si pas de chemin = OK

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) Then
fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNetRecipe\" & Me!PicChemin10A
Me.Img10A.Picture = ""
Me.Img10A.Visible = True
Else
Me.Img10A.Picture = Me.PicChemin10A
Me.Img10A.Visible = False
End If
End Sub

Mais je n’arrive pas à gérer la non existence de la photo si le chemin
existe et que la photo n’existe plus dans le dossier, à ce moment la j’ai
l’affichage de la photo précédente.
Un petit coup de pouce serait bien apprécié.
Est-ce que Dir peut m’aider ?? Et comment le placer

If Dir("C:\Program Files\NetRS\PhotosNR\" & Me!PicChemin10A, vbHidden) <> ""
Then


Ou l'affichage d'une image choisie??
malgrés qq heures sur ces deux options je bloque ...
merci par avance

Merci de vos conseils
jfd

8 réponses

Avatar
jfd
Bonjour et suite
En bonne partie résolu

Sur absence de chemin pas d’affichage ok
Sur absence de photo pas d’affichage ok
Chemin et photo trouvés affichage ok

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) And Dir("C:Program
FilesNetRecipeSoftPhotosNetRecipe" & Me!PicChemin10A, vbHidden) <> "" Then
fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNetRecipe" & Me!PicChemin10A
Me.Img10A.Picture = ""
Me.Img10A.Visible = True
Else
Me.Img10A.Visible = False
End If
End Sub


Je n’arrive pas à placer ou à utiliser la ligne pour afficher un BMP type
avec message « Photo non trouvée »qui provoquerait l’affichage UNIQUEMENT sur
les photos manquantes
Me![Img10A].Picture = Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNR" & "blank.jpg"


Merci
Avatar
Alain
Bonjour,

J'ai justement eu le même soucis avant-hier !
J'ai opté pour
On Error GoTo Err (cas où pas de photo du tout ou pas trouvée)
et, en fin de procédure :
dernière ligne 'normale'
Exit sub
Err:
Illustration.Picture = "chemin du fichier qui m'affiche une jolie photo No
Pic"
End Sub

Bonne continuation


Bonjour et suite
En bonne partie résolu

Sur absence de chemin pas d’affichage ok
Sur absence de photo pas d’affichage ok
Chemin et photo trouvés affichage ok

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) And Dir("C:Program
FilesNetRecipeSoftPhotosNetRecipe" & Me!PicChemin10A, vbHidden) <> "" Then
fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNetRecipe" & Me!PicChemin10A
Me.Img10A.Picture = ""
Me.Img10A.Visible = True
Else
Me.Img10A.Visible = False
End If
End Sub


Je n’arrive pas à placer ou à utiliser la ligne pour afficher un BMP type
avec message « Photo non trouvée »qui provoquerait l’affichage UNIQUEMENT sur
les photos manquantes
Me![Img10A].Picture = Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNR" & "blank.jpg"


Merci




Avatar
jfd
Bonjour et merci de ta réponse
Je pense que ta méthode génère aussi l'affichage en cas de " pas de lien "ce
que je veux éviter pour réduire au max les chargements ayant plusieurs photos
sur la même page.
Alors pour l’instant j’en suis la avec image visible ou non sur certaine
action de mon formulaire.

Private Sub Form_Current()
If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) And Dir("C:Program
FilesNRSPhotosNR" & Me!PicChemin10A, vbHidden) <> "" Then
fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNR" & Me!PicChemin10A
Else
Me.Img10A.Picture = ""

End If

If Me!PicChemin10B = "" Or Not IsNull(Me!PicChemin10B) And Dir("C:Program
FilesNRSPhotosNR" & Me!PicChemin10B, vbHidden) <> "" Then
fLoadPicture Me!Img10B, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNR" & Me!PicChemin10B

Else
Me.Img10B.Picture = ""
End If
exit_Form_Current:
Exit Sub

err_Form_Current:
MsgBox Err.Description
Resume exit_Form_Current
End Sub

Merci à toi.
jfd



Bonjour,

J'ai justement eu le même soucis avant-hier !
J'ai opté pour
On Error GoTo Err (cas où pas de photo du tout ou pas trouvée)
et, en fin de procédure :
dernière ligne 'normale'
Exit sub
Err:
Illustration.Picture = "chemin du fichier qui m'affiche une jolie photo No
Pic"
End Sub

Bonne continuation


Bonjour et suite
En bonne partie résolu

Sur absence de chemin pas d’affichage ok
Sur absence de photo pas d’affichage ok
Chemin et photo trouvés affichage ok

Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) And Dir("C:Program
FilesNetRecipeSoftPhotosNetRecipe" & Me!PicChemin10A, vbHidden) <> "" Then
fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNetRecipe" & Me!PicChemin10A
Me.Img10A.Picture = ""
Me.Img10A.Visible = True
Else
Me.Img10A.Visible = False
End If
End Sub


Je n’arrive pas à placer ou à utiliser la ligne pour afficher un BMP type
avec message « Photo non trouvée »qui provoquerait l’affichage UNIQUEMENT sur
les photos manquantes
Me![Img10A].Picture = Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNR" & "blank.jpg"


Merci






Avatar
3stone
Salut,

"jfd"

| If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) And Dir("C:Program
| FilesNRSPhotosNR" & Me!PicChemin10A, vbHidden) <> "" Then


if len(Me!PicChemin10A & "") > 0 then
if dir(CheminComplet) <> "" then
'on affiche
else
'Me!Img10A.Picture = ""
end if
end if

est nettement plus performant...
Tout comme Dir("C:program filesblabla") t'oblige à retravailler tout
ton code en cas de simple déplacement !!!
Utilise un chemin relatif et non des chemins absolus.



| fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
| "PhotosNR" & Me!PicChemin10A


Me!PicChemin10A devrait s'appeler "NomImage" puisque le chemin
ne semble pas s'y trouver...

Au lieu de faire des concaténations avec des left(), des path et Dir path
au moment de l'affichage, il faut déclarer un variable (CheminImage par exemple)
et la renseigner à l'ouverture du formulaire. Ce chemin d'accès aux images
est parfaitement bien placé dans une petite table et lu par

CheminImage = Dlookup("CheminImage","tblParametres")

Cela permet son adaptation via un simple formulaire "frmParametres" et
également d'écrire le moment venu:

Me!Img10A.Picture = CheminImage & "" & Me.NomImage



My 2 (euros) cents (comme disait Hévé ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
jfd
Merci de tes conseils
je vais essayer de mettre cela en place.


Salut,

"jfd"

| If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) And Dir("C:Program
| FilesNRSPhotosNR" & Me!PicChemin10A, vbHidden) <> "" Then


if len(Me!PicChemin10A & "") > 0 then
if dir(CheminComplet) <> "" then
'on affiche
else
'Me!Img10A.Picture = ""
end if
end if

est nettement plus performant...
Tout comme Dir("C:program filesblabla") t'oblige à retravailler tout
ton code en cas de simple déplacement !!!
Utilise un chemin relatif et non des chemins absolus.



| fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
| "PhotosNR" & Me!PicChemin10A


Me!PicChemin10A devrait s'appeler "NomImage" puisque le chemin
ne semble pas s'y trouver...

Au lieu de faire des concaténations avec des left(), des path et Dir path
au moment de l'affichage, il faut déclarer un variable (CheminImage par exemple)
et la renseigner à l'ouverture du formulaire. Ce chemin d'accès aux images
est parfaitement bien placé dans une petite table et lu par

CheminImage = Dlookup("CheminImage","tblParametres")

Cela permet son adaptation via un simple formulaire "frmParametres" et
également d'écrire le moment venu:

Me!Img10A.Picture = CheminImage & "" & Me.NomImage



My 2 (euros) cents (comme disait Hévé ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
jfd
Bonsoir Pierre
Apres essais le chemin relatif est effectivement très intéressant.
Mais j’aimerais aussi l’adapter sur ce code et la je bloque complètement

fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
"PhotosNR" & Me!PicChemin10A
Si cela n'est pas trop abuser je veux bien encore un coup de pouce pour
avancer.

Merci d’avance et bon week-end



Salut,

"jfd"

| If Me!PicChemin10A = "" Or Not IsNull(Me!PicChemin10A) And Dir("C:Program
| FilesNRSPhotosNR" & Me!PicChemin10A, vbHidden) <> "" Then


if len(Me!PicChemin10A & "") > 0 then
if dir(CheminComplet) <> "" then
'on affiche
else
'Me!Img10A.Picture = ""
end if
end if

est nettement plus performant...
Tout comme Dir("C:program filesblabla") t'oblige à retravailler tout
ton code en cas de simple déplacement !!!
Utilise un chemin relatif et non des chemins absolus.



| fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
| "PhotosNR" & Me!PicChemin10A


Me!PicChemin10A devrait s'appeler "NomImage" puisque le chemin
ne semble pas s'y trouver...

Au lieu de faire des concaténations avec des left(), des path et Dir path
au moment de l'affichage, il faut déclarer un variable (CheminImage par exemple)
et la renseigner à l'ouverture du formulaire. Ce chemin d'accès aux images
est parfaitement bien placé dans une petite table et lu par

CheminImage = Dlookup("CheminImage","tblParametres")

Cela permet son adaptation via un simple formulaire "frmParametres" et
également d'écrire le moment venu:

Me!Img10A.Picture = CheminImage & "" & Me.NomImage



My 2 (euros) cents (comme disait Hévé ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/




Avatar
3stone
Salut,

"jfd"
| fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
| "PhotosNR" & Me!PicChemin10A


Le mieux est de partir de l'emplacement de la base.
Cela permet de placer les images dans le répertoire de la base ou encore
mieux, dans un répertoire se trouvant à l'emplacement de la base.

Ce point de départ t'est donne par :

Currentproject.Path

Si tu y place un répertoire "PhotosNR", il suffit de faire :

Dim strPicturePath As String
strPicturePath = CurrentProject.Path & "PhotosNR"

Ensuite, avec ta fonction :

fLoadPicture strPicturePath & "" & Me.NomImage


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
jfd
Avec bq de retard merci pour tes réponses et conseils
Bonne soirée.


Salut,

"jfd"
| fLoadPicture Me!Img10A, Left(Path(), Len(Path()) - Len(Dir(Path()))) &
| "PhotosNR" & Me!PicChemin10A


Le mieux est de partir de l'emplacement de la base.
Cela permet de placer les images dans le répertoire de la base ou encore
mieux, dans un répertoire se trouvant à l'emplacement de la base.

Ce point de départ t'est donne par :

Currentproject.Path

Si tu y place un répertoire "PhotosNR", il suffit de faire :

Dim strPicturePath As String
strPicturePath = CurrentProject.Path & "PhotosNR"

Ensuite, avec ta fonction :

fLoadPicture strPicturePath & "" & Me.NomImage


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/