Access ne trouve systématiquement pas les photos (erreur 2220)
Résolu/Fermé
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
-
18 juil. 2020 à 23:45
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 - 20 juil. 2020 à 00:50
RV71 Messages postés 610 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 27 novembre 2024 - 20 juil. 2020 à 00:50
A voir également:
- Access ne trouve systématiquement pas les photos (erreur 2220)
- Erreur 0x80070643 - Accueil - Windows
- Partage de photos - Guide
- Télécharger toutes les photos de google photo - Guide
- Pourquoi ma tv ne trouve pas toutes les chaînes - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
8 réponses
yg_be
Messages postés
23400
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 décembre 2024
Ambassadeur
1 557
19 juil. 2020 à 09:41
19 juil. 2020 à 09:41
bonjour,
peux-tu utiliser les balises de code (en choisissant "basic") quand tu partages du code VBA?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
afin de vérifier à quelle ligne se produit l'erreur, peux-tu provisoirement commenter la ligne "
tu écris "le Dir juste avant trouve bien la photo". comment détermines-tu cela?
je suggère de supprimer l'espace entre les guillemets:
tu écris "Or la photo est bien à cet endroit": as-tu vérifié en utilisant (copier/coller) le nom utilisé dans le programme?
peux-tu utiliser les balises de code (en choisissant "basic") quand tu partages du code VBA?
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
afin de vérifier à quelle ligne se produit l'erreur, peux-tu provisoirement commenter la ligne "
on error ..."?
tu écris "le Dir juste avant trouve bien la photo". comment détermines-tu cela?
je suggère de supprimer l'espace entre les guillemets:
If stDir <> ""
tu écris "Or la photo est bien à cet endroit": as-tu vérifié en utilisant (copier/coller) le nom utilisé dans le programme?
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
19 juil. 2020 à 14:37
19 juil. 2020 à 14:37
En complément de yg_be, as-tu suivi les recommandations ici :
https://docs.microsoft.com/en-ca/office/troubleshoot/access/display-images-using-custom-function
A+
https://docs.microsoft.com/en-ca/office/troubleshoot/access/display-images-using-custom-function
A+
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
19 juil. 2020 à 22:51
19 juil. 2020 à 22:51
Oui j'ai regardé ça. Outre le fait que je n'ai pas de fichier adp, ça ressemble énormément à mon code.
Faut-il créer un fichier .adp?
J'ai un fichier accdb avec les données qui varie selon les usagers et un fichier accdb contenant la partie programme qui est commune.
La table tb_Photo est dans la partie données.
Faut-il créer un fichier .adp?
J'ai un fichier accdb avec les données qui varie selon les usagers et un fichier accdb contenant la partie programme qui est commune.
La table tb_Photo est dans la partie données.
Bonjour,
En complément de ce que viennent d'écrire Yg_Be et Rv71, tu devrais commencer par faire un "pas à pas" de ton code, pour repérer exactement la ligne où il bloque; et à partir de là voir ce qu'il faut réparer. Et vérifier aussi ce qu'il prend pour valeur de tes paramètres de chemin d'accès. Prend-il seulement le bon chemin d'accès pour aller à ton dossier de photos, ou se perd-il en cours de route vers un autre dossier?
Peut-être l'as-tu déjà fait? Alors excuse-moi.
Une autre solution serait de passer en mode "pièce jointe", mais encore faut--il que le nombre ne soit pas trop important.
Bon courage.
En complément de ce que viennent d'écrire Yg_Be et Rv71, tu devrais commencer par faire un "pas à pas" de ton code, pour repérer exactement la ligne où il bloque; et à partir de là voir ce qu'il faut réparer. Et vérifier aussi ce qu'il prend pour valeur de tes paramètres de chemin d'accès. Prend-il seulement le bon chemin d'accès pour aller à ton dossier de photos, ou se perd-il en cours de route vers un autre dossier?
Peut-être l'as-tu déjà fait? Alors excuse-moi.
Une autre solution serait de passer en mode "pièce jointe", mais encore faut--il que le nombre ne soit pas trop important.
Bon courage.
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
19 juil. 2020 à 18:00
19 juil. 2020 à 18:00
Je viens de relire, c'est office365 qui t'oblige à tout ce binz ?
Aussi,
Ne sont pas mis à jour ?
Je ne comprends pas trop où tu veux en venir avec ta mise à jour, pourquoi ne pas créer uniquement un champ texte dans lequel tu mettrais le nom du fichier .jpg ?
A+
Aussi,
optComplet = False optVente = False
Ne sont pas mis à jour ?
Je ne comprends pas trop où tu veux en venir avec ta mise à jour, pourquoi ne pas créer uniquement un champ texte dans lequel tu mettrais le nom du fichier .jpg ?
A+
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
19 juil. 2020 à 22:23
19 juil. 2020 à 22:23
Par ce que le chemin du fichier peut varier d'un usager à l'autre.
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
>
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
19 juil. 2020 à 23:14
19 juil. 2020 à 23:14
Comment cela varier ?
Là il est dans le répertoire courant de la base.
Donc pourquoi restocker ce chemin ????
A+
Là il est dans le répertoire courant de la base.
Donc pourquoi restocker ce chemin ????
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
19 juil. 2020 à 22:25
19 juil. 2020 à 22:25
Les boutons opt sont mis à jour dans une autre fonction.
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
19 juil. 2020 à 22:30
19 juil. 2020 à 22:30
Voilà qui devrait être plus lisible. Encore une fois désolée.
Private Sub Form_Load() Dim stChemin As String Dim rstPh As DAO.Recordset Dim stMsg As String Dim stSQL As String On Error GoTo Err_Form_Load optComplet = False optVente = False stChemin = CurrentProject.Path If Right(stChemin, 1) <> "\" Then stChemin = stChemin & "\" 'Effacer les chemins de photo quand il n'y a rien dans le champ photo stSQL = "Update tb_Photo Set PhotoChemin = null where Photo is null" DoCmd.RunSQL stSQL stSQL = "Update tb_Photo Set PhotoChemin = null where Photo < 'a'" DoCmd.RunSQL stSQL 'Calculer les chemins des photos et placer dans un hyperlien stSQL = "SELECT * FROM tb_Photo" Set rstPh = CurrentDb.OpenRecordset(stSQL, dbOpenDynaset) With rstPh While Not .EOF If Not IsNull(!Photo) Then .Edit 'Au cas où il y aurait des chaînes vides If Len(!Photo) > 5 Then !PhotoChemin = stChemin & !Photo .Update End If .MoveNext Wend End With Exit_Form_Load: Set rstPh = Nothing Exit Sub Err_Form_Load: stMsg = "En ouvrant le menu principal," & vbCrLf & Err.Number & ": " & Err.Description MsgBox stMsg, vbExclamation, "Erreur" Resume Exit_Form_Load End Sub 'Fonction qui ne trouve pas la photo Private Sub Form_Current() Dim stDir As String On Error GoTo Err_Form_Current ' si la photo n'est pas définie, on affiche la photo blank.jpg ' CurrentProject.Path : est le chemin de l'application If Len(Me.txtPhoto) > 0 Then stDir = Dir(Me.txtPhoto) If stDir <> " " Then Me.imgPhoto.Picture = Me.txtPhoto 'Ça bloque ici, erreur 2220 'txtPhoto est le chemin absolu calculé précédemment Else Me.imgPhoto.Picture = CurrentProject.Path & "\blank.jpg" End If DisplayPhoto Exit_Form_Current: Exit Sub Err_Form_Current: Select Case Err.Number Case 2114 'Cas d'un type de fichier photo non supporté ... MsgBox "Le format de l'image n'est supporté par le contrôle image Picture", vbCritical + vbOKOnly, "Application Photos" Me.imgPhoto.Picture = CurrentProject.Path & "\images\blank.jpg" 'Me.txtPhoto = vbNullString Case 2220 'Cas d'un emplacement non valide du fichier image MsgBox "Le fichier image n'a pas été trouvé à l'emplacement indiqué : " & vbCrLf & _ Me.txtPhoto, vbCritical + vbOKOnly, "Application Photos" Me.imgPhoto.Picture = CurrentProject.Path & "\blank.jpg" 'Me.txtPhoto = vbNullString Case Else ' tout autre cas d'erreur MsgBox "Erreur inattendue : " & Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Application Photos" End Select Err.Clear Resume Exit_Form_Current 'Et la fonction qui ajuste la taille de l'image Sub DisplayPhoto() 'DisplayPhoto est la sub d'affichage des photos dans le contrôle Image appelé : imgPhoto. 'Cette procédure ajuste l'affichage de la photo au cas où ses dimensions dépasseraient celles du contrôle photo. 'Me.imgPhoto.ImageHeight : donne la hauteur de la Photo (Fichier .jpg par exemple) 'Me.imgPhoto.Height : donne la hauteur du contrôle d'affichage. ' Traitement en fonction de la taille de l'image ' regarde si la hauteur de l'image dépasse celle du controle Picture If Me.imgPhoto.ImageHeight > Me.imgPhoto.Height Then ' met le controle en mode zoom (3) Me.imgPhoto.SizeMode = 3 'Me.imgPhoto.SizeMode = 0 Else ' met le contrôle en mode respect de la taille originale Me.imgPhoto.SizeMode = 0 End If ' si la largeur dépasse et qu'on est en mode taille réelle ... If (Me.imgPhoto.ImageWidth > Me.imgPhoto.Width) And _ (Me.imgPhoto.SizeMode) = 0 Then ' on met en mode zoom Me.imgPhoto.SizeMode = 3 'Me.imgPhoto.SizeMode = 0 End If End Sub
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
19 juil. 2020 à 22:40
19 juil. 2020 à 22:40
Dommage que les balises ne préservent pas l'indentation. Ce serait encore plus lisible.
En mode pas à pas j'affiche le chemin du fichier passé à a fonction dir.
Comme j'ai déjà affiché la photo dans la fonction suivante, l'adresse est correcte.
Dans cette fonction je n'ai pas l'erreur 2220.
En mode pas à pas j'affiche le chemin du fichier passé à a fonction dir.
Comme j'ai déjà affiché la photo dans la fonction suivante, l'adresse est correcte.
Dans cette fonction je n'ai pas l'erreur 2220.
Private Sub cmdAjoutModifPhoto_Click() ' Bouton d'ajout - modification de photo Dim strLink As String Dim stPhoto As String 'Ce qu'il faut conserver du chemin dans la base de données Dim stSQL As String Dim stTitre As String On Error GoTo err_cmdAjoutModifPhoto_Click stTitre = "Choisissez une photo de " & Me.Parent!Nom & " " & Me.Parent!Cultivar ' récupération du chemin physique de la photo ' par la boite de dialogue strLink = modFichiers.ChoisirFichier(stTitre) ' si la boite renvoie une adresse non nulle If Len(strLink) > 0 Then ' tentative d'affichage de la photo Me.imgPhoto.Picture = strLink 'Sauvegarde d'une portion du chemin relative au projet dans la base de données iPos = Len(CurrentProject.Path) stPhoto = Right(strLink, Len(strLink) - iPos - 1) Me.txtPhoto = stPhoto DoEvents If Me.Dirty Then Me.Dirty = False stSQL = "UPDATE tb_Photo SET PhotoChemin = '" & strLink & "' WHERE Nom = '" & Me.Parent!Nom & "' AND Cultivar = '" & Me.Parent!Cultivar & "'" DoCmd.RunSQL stSQL End If DisplayPhoto Exit_cmdAjoutModifPhoto_Click: Exit Sub err_cmdAjoutModifPhoto_Click: Select Case Err.Number Case 2114 'Cas d'un type de fichier photo non supporté ... ' on sort de la procédure MsgBox "Le format de l'image n'est supporté par le contrôle image Picture", vbCritical + vbOKOnly, "Application Photos" GoTo Exit_cmdAjoutModifPhoto_Click Case 2220 'Cas d'un emplacement non valide du fichier image MsgBox "Le fichier image n'a pas été trouvé à l'emplacement indiqué : " & vbCrLf & _ Me.txtPhoto, vbCritical + vbOKOnly, "Application Photos" GoTo Exit_cmdAjoutModifPhoto_Click Case Else ' tout autre cas d'erreur MsgBox "Erreur inattendue : " & Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Application Photos" End Select Err.Clear Resume Exit_cmdAjoutModifPhoto_Click End Sub
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
19 juil. 2020 à 23:03
19 juil. 2020 à 23:03
Tu ne peux pas mettre les chemins dans un champ typé texte au lieu d'hypertexte ?
Aussi, ça serait un + si tu donnais la structure de la table tb_Photo et à quoi correspondent les controles imgphoto et txtPhoto...
A+
Aussi, ça serait un + si tu donnais la structure de la table tb_Photo et à quoi correspondent les controles imgphoto et txtPhoto...
A+
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
19 juil. 2020 à 23:13
19 juil. 2020 à 23:13
oui J'ai pensé au champ texte. Bonne idée.
J'avais peur que ça ne fonctionne pas. Il devais bien y avoir une raison pour le mettre en hypertexte lors de la conception de la BD mais si ça peut régler le problème pourquoi pas.
tb_Photo (structure)
Nom Texte court
Cultivar Texte court
Photo texte long
PhotoChemin Lien Hypertexte Je copie la table et change ça pour texte long
Reprendre Photo oui/non
J'avais peur que ça ne fonctionne pas. Il devais bien y avoir une raison pour le mettre en hypertexte lors de la conception de la BD mais si ça peut régler le problème pourquoi pas.
tb_Photo (structure)
Nom Texte court
Cultivar Texte court
Photo texte long
PhotoChemin Lien Hypertexte Je copie la table et change ça pour texte long
Reprendre Photo oui/non
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
19 juil. 2020 à 23:16
19 juil. 2020 à 23:16
Yes, mais photochemin est le chemin de la base, donc pas la peine de le restocker...
A+
A+
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
>
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
Modifié le 20 juil. 2020 à 00:26
Modifié le 20 juil. 2020 à 00:26
Pour les # voir réponse à yg_be.
Utiliser seulement le champ Photo: J'ai pensé à ça aussi. Apparemment que ça a été fait comme ça parce qu'il y avait des problèmes pour charger les photos autrement. Ça pourrait valoir la peine de tester à nouveau avec la nouvelle version de Windows et d'access.
Merci.
Je viens de tester ça et les photos ne s'affichent pas si elles sont déjà dans la base de données, seulement quand on en ajoute. Par contre il n'y a plus d'erreur 2220.
La structure de tb_photo est devenue
Nom Texte court
Cultivar Texte court
Photo texte long
FichierPhotoIntrouvable oui/non
Reprendre Photo oui/non
La fonction au changement d'enregistrement est devenue
La fonction pour ajouter une photo est devenue
La fonction à l'ouverture de la base de donnée ne s'occupe plus des photos et est devenue
Donc il reste un détail, et non pas le moindre, faire afficher les photos sans lien hypertexte.
Merci tout le monde. Ça avance.
Je fouille l'internet et je vous reviendrai là-dessus.
Utiliser seulement le champ Photo: J'ai pensé à ça aussi. Apparemment que ça a été fait comme ça parce qu'il y avait des problèmes pour charger les photos autrement. Ça pourrait valoir la peine de tester à nouveau avec la nouvelle version de Windows et d'access.
Merci.
Je viens de tester ça et les photos ne s'affichent pas si elles sont déjà dans la base de données, seulement quand on en ajoute. Par contre il n'y a plus d'erreur 2220.
La structure de tb_photo est devenue
Nom Texte court
Cultivar Texte court
Photo texte long
FichierPhotoIntrouvable oui/non
Reprendre Photo oui/non
La fonction au changement d'enregistrement est devenue
Private Sub Form_Current() ' L'événement Activation (Current) se produit lorsque le focus passe à un enregistrement ' donné pour en faire l'enregistrement en cours, ou lorsque le formulaire est ' Actualisé ou en Actualisation. ' si le chemin vers la photo est non vide : on visualise un enregistrement ' sinon cela indique que nous sommes sur un enregistrement vierge, donc en cours de saisie. ' Me.Caption : gère le titre du formulaire. Dim stDir As String ' Gestion des erreurs On Error GoTo Err_Form_Current 'Effacer la photo avant de passer à l'enregistrement suivant sinon elle reste Me.imgPhoto.Picture = CurrentProject.Path & "\blank.jpg" ' si la photo n'est pas définie, on affiche la photo blank.jpg ' CurrentProject.Path : est le chemin de l'application If Len(Me.txtPhoto) > 0 Then stDir = Dir(Me.txtPhoto) If stDir <> "" Then Me.imgPhoto.Picture = CurrentProject.Path & "\" & Me.txtPhoto End If End If DisplayPhoto Exit_Form_Current: Exit Sub Err_Form_Current: Select Case Err.Number Case 2114 'Cas d'un type de fichier photo non supporté ... MsgBox "Le format de l'image n'est supporté par le contrôle image Picture", vbCritical + vbOKOnly, "Application Photos" Me.imgPhoto.Picture = CurrentProject.Path & "\images\blank.jpg" 'Me.txtPhoto = vbNullString Case 2220 'Cas d'un emplacement non valide du fichier image MsgBox "Le fichier image n'a pas été trouvé à l'emplacement indiqué : " & vbCrLf & _ Me.txtPhoto, vbCritical + vbOKOnly, "Application Photos" Me.imgPhoto.Picture = CurrentProject.Path & "\blank.jpg" stSQL = "UPDATE tb_Photo SET FichierPhotoIntrouvable = TRUE WHERE Nom = '" & Me.Nom & _ "' AND Cultivar = '" & Me.Cultivar & "'" Case Else ' tout autre cas d'erreur MsgBox "Erreur inattendue : " & Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Application Photos" End Select Err.Clear Resume Exit_Form_Current End Sub
La fonction pour ajouter une photo est devenue
Private Sub cmdAjoutModifPhoto_Click() ' Bouton d'ajout - modification de photo Dim strLink As String Dim stPhoto As String 'Ce qu'il faut conserver du chemin dans la base de données Dim stSQL As String Dim stTitre As String On Error GoTo err_cmdAjoutModifPhoto_Click stTitre = "Choisissez une photo de " & Me.Parent!Nom & " " & Me.Parent!Cultivar ' récupération du chemin physique de la photo ' par la boite de dialogue strLink = modFichiers.ChoisirFichier(stTitre) ' si la boite renvoie une adresse non nulle If Len(strLink) > 0 Then ' tentative d'affichage de la photo Me.imgPhoto.Picture = strLink 'Sauvegarde d'une portion du chemin relative au projet dans la base de données iPos = Len(CurrentProject.Path) stPhoto = Right(strLink, Len(strLink) - iPos - 1) Me.txtPhoto = stPhoto DoEvents If Me.Dirty Then Me.Dirty = False End If DisplayPhoto Exit_cmdAjoutModifPhoto_Click: Exit Sub err_cmdAjoutModifPhoto_Click: Select Case Err.Number Case 2114 'Cas d'un type de fichier photo non supporté ... ' on sort de la procédure MsgBox "Le format de l'image n'est supporté par le contrôle image Picture", vbCritical + vbOKOnly, "Application Photos" GoTo Exit_cmdAjoutModifPhoto_Click Case 2220 'Cas d'un emplacement non valide du fichier image MsgBox "Le fichier image n'a pas été trouvé à l'emplacement indiqué : " & vbCrLf & _ Me.txtPhoto, vbCritical + vbOKOnly, "Application Photos" GoTo Exit_cmdAjoutModifPhoto_Click Case Else ' tout autre cas d'erreur MsgBox "Erreur inattendue : " & Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Application Photos" End Select Err.Clear Resume Exit_cmdAjoutModifPhoto_Click End Sub
La fonction à l'ouverture de la base de donnée ne s'occupe plus des photos et est devenue
Private Sub Form_Load() Dim stMsg As String On Error GoTo Err_Form_Load optComplet = False optVente = False Exit_Form_Load: Set rstPh = Nothing Exit Sub Err_Form_Load: stMsg = "En ouvrant le menu principal," & vbCrLf & Err.Number & ": " & Err.Description MsgBox stMsg, vbExclamation, "Erreur" Resume Exit_Form_Load End if
Donc il reste un détail, et non pas le moindre, faire afficher les photos sans lien hypertexte.
Merci tout le monde. Ça avance.
Je fouille l'internet et je vous reviendrai là-dessus.
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
>
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
20 juil. 2020 à 00:42
20 juil. 2020 à 00:42
Ce que je ne comprends pas, c'est pourquoi tu ne mets pas dans ton (sous) formulaire un controle image, lequel est basé sur le champ de la table...
Access t'affiche l'image normalement, sans passer par du code. En tous cas cela fonctionne pour les .png
Access t'affiche l'image normalement, sans passer par du code. En tous cas cela fonctionne pour les .png
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
19 juil. 2020 à 23:17
19 juil. 2020 à 23:17
Méfies toi en transformant en texte long, il est arrivé encore récemment que des "#" soit rajoutés en début et fin de texte...
Si je peux ajouter mon grain de sel !
Pourquoi entrer le chemin dans un champ, que ce soit texte ou hypertexte, puisque de toute façon le chemin est gardé en mémoire pendant toute la procédure et effacé à la fermeture?
Par ailleurs, tu te demandais pourquoi le format était hypertexte et non pas texte. Il faut faire attention parce que le champ d'un texte est limité à 252 caractères, ce qui n 'est pas le cas d'un champ hypertexte, et si la procédure est utilisée par des ordis différents le chemin sera différent et tu dois prévoir toutes les configurations possibles, d'où l'avantage d'un lien hypertexte. Mais c'est justement une difficulté que tu évites en gardant le lien en mémoire dans la procédure, parce que là tu n'as pas cette limite du nbre de caractères.
Pourquoi entrer le chemin dans un champ, que ce soit texte ou hypertexte, puisque de toute façon le chemin est gardé en mémoire pendant toute la procédure et effacé à la fermeture?
Par ailleurs, tu te demandais pourquoi le format était hypertexte et non pas texte. Il faut faire attention parce que le champ d'un texte est limité à 252 caractères, ce qui n 'est pas le cas d'un champ hypertexte, et si la procédure est utilisée par des ordis différents le chemin sera différent et tu dois prévoir toutes les configurations possibles, d'où l'avantage d'un lien hypertexte. Mais c'est justement une difficulté que tu évites en gardant le lien en mémoire dans la procédure, parce que là tu n'as pas cette limite du nbre de caractères.
RV71
Messages postés
610
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
27 novembre 2024
31
20 juil. 2020 à 00:38
20 juil. 2020 à 00:38
Texte long n'est pas limité à 256 caractères...
KimCharlotte
Messages postés
10
Date d'inscription
samedi 18 juillet 2020
Statut
Membre
Dernière intervention
20 juillet 2020
20 juil. 2020 à 00:45
20 juil. 2020 à 00:45
Ok J'ai trouvé pourquoi et mon code est maintenant. Donc si je vais sur un enregistrement, la photo n'affiche pas toujours mais si je la recharge et que je ferme la BD, elle affiche quand j'ouvre la BD à nouveau. Donc il reste à recharger les photos récalcitrantes.
Merci tout le monde!!!!
Je suis tellement contente!!!!!
A+
Merci tout le monde!!!!
Je suis tellement contente!!!!!
Private Sub Form_Current() ' L'événement Activation (Current) se produit lorsque le focus passe à un enregistrement ' donné pour en faire l'enregistrement en cours, ou lorsque le formulaire est ' Actualisé ou en Actualisation. ' si le chemin vers la photo est non vide : on visualise un enregistrement ' sinon cela indique que nous sommes sur un enregistrement vierge, donc en cours de saisie. ' Me.Caption : gère le titre du formulaire. Dim stDir As String Dim stChemin As String ' Gestion des erreurs On Error GoTo Err_Form_Current 'Effacer la photo avant de passer à l'enregistrement suivant sinon elle reste Me.imgPhoto.Picture = CurrentProject.Path & "\blank.jpg" ' si la photo n'est pas définie, on affiche la photo blank.jpg ' CurrentProject.Path : est le chemin de l'application If Len(Me.txtPhoto) > 0 Then stChemin = CurrentProject.Path & "\" & Me.txtPhoto stDir = Dir(stChemin) If stDir <> "" Then Me.imgPhoto.Picture = stChemin End If End If DisplayPhoto Exit_Form_Current: Exit Sub Err_Form_Current: Select Case Err.Number Case 2114 'Cas d'un type de fichier photo non supporté ... MsgBox "Le format de l'image n'est supporté par le contrôle image Picture", vbCritical + vbOKOnly, "Application Photos" Me.imgPhoto.Picture = CurrentProject.Path & "\images\blank.jpg" 'Me.txtPhoto = vbNullString Case 2220 'Cas d'un emplacement non valide du fichier image MsgBox "Le fichier image n'a pas été trouvé à l'emplacement indiqué : " & vbCrLf & _ Me.txtPhoto, vbCritical + vbOKOnly, "Application Photos" Me.imgPhoto.Picture = CurrentProject.Path & "\blank.jpg" stSQL = "UPDATE tb_Photo SET FichierPhotoIntrouvable = TRUE WHERE Nom = '" & Me.Nom & _ "' AND Cultivar = '" & Me.Cultivar & "'" Case Else ' tout autre cas d'erreur MsgBox "Erreur inattendue : " & Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "Application Photos" End Select Err.Clear Resume Exit_Form_Current End Sub Sub DisplayPhoto() 'DisplayPhoto est la sub d'affichage des photos dans le contrôle Image appelé : imgPhoto. 'Cette procédure ajuste l'affichage de la photo au cas où ses dimensions dépasseraient celles du contrôle photo. 'Me.imgPhoto.ImageHeight : donne la hauteur de la Photo (Fichier .jpg par exemple) 'Me.imgPhoto.Height : donne la hauteur du contrôle d'affichage. ' Traitement en fonction de la taille de l'image ' regarde si la hauteur de l'image dépasse celle du controle Picture If Me.imgPhoto.ImageHeight > Me.imgPhoto.Height Then ' met le controle en mode zoom (3) Me.imgPhoto.SizeMode = 3 'Me.imgPhoto.SizeMode = 0 Else ' met le contrôle en mode respect de la taille originale Me.imgPhoto.SizeMode = 0 End If ' si la largeur dépasse et qu'on est en mode taille réelle ... If (Me.imgPhoto.ImageWidth > Me.imgPhoto.Width) And (Me.imgPhoto.SizeMode) = 0 Then ' on met en mode zoom Me.imgPhoto.SizeMode = 3 'Me.imgPhoto.SizeMode = 0 End If End Sub
A+
19 juil. 2020 à 23:06
19 juil. 2020 à 23:34
Hypertexte à texte: J'ai enlevé plein de # hier dans le champ Photo. Impossible de les enlever avec l'outil de recherche, il ne les trouvait pas. Rien ne fonctionnait avant ce ménage. J'en ai ragé un coup. Ma copie contient plusieurs centaines d'enregistrement.
Modifié le 20 juil. 2020 à 01:09