[Résolu] [Base] Affichage photo dans un formulaire et enregistrement en table

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

[Résolu] [Base] Affichage photo dans un formulaire et enregistrement en table

Message par pguilpain72 »

Bonjour,
J'ai besoin de votre aide
J'ai réalisé le formulaire "voitures" avec votre aide, il y a quelques années en ce qui concerne la partie de gestion des photos (affichage et enregistrement du chemin). Cela fonctionne très bien.
J'ai voulu faire la même chose pour le formulaire "pilotes" en modifiant les macros selon le noms du formulaire et des champs concernés. Cela ne fonctionne pas.
En pièce jointe mon fichier base avec des tables allégées.
Merci beaucoup
Macro Module1 :

Code : Tout sélectionner

REM  *****  BASIC  *****

Sub EnregistrerChemin(oEv)
Dim oForm As Object, CheminImage as Object
	oForm = ThisComponent.DrawPage.Forms.getByName("Voitures")
	CheminImage = oForm.getByName("CheminPhoto")
	with CheminImage
		.Text =	oEv.Source.Text
		.commit
	end with
	AfficherImage
End Sub

sub AfficherImage
Dim oForm as Object, CheminImage as Object
	oForm = ThisComponent.DrawPage.Forms.getByName("Voitures")
	CheminImage = oForm.getByName("CheminPhoto")
	oForm.getByName("ImageControl").ImageURL=convertToUrl(CheminImage.Text)
end sub
Macro module2 :

Code : Tout sélectionner

REM  *****  BASIC  *****

Sub EnregistrerChemin(oEv)
Dim oForm As Object, CheminImage as Object
	oForm = ThisComponent.DrawPage.Forms.getByName("Pilotes")
	CheminImage = oForm.getByName("CheminPhoto")
	with CheminImage
		.Text =	oEv.Source.Text
		.commit
	end with
	AfficherImage
End Sub

sub AfficherImage
Dim oForm as Object, CheminImage as Object
	oForm = ThisComponent.DrawPage.Forms.getByName("Pilotes")
	CheminImage = oForm.getByName("CheminPhoto")
	oForm.getByName("ImageControl").ImageURL=convertToUrl(CheminImage.Text)
end sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 15 mai 2024 13:42, modifié 1 fois.
Raison : Balisage
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1195
Inscription : 19 août 2018 05:20

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par Dolev »

Bonjour,

Quel est l'intérêt de brancher la macro sur deux événements ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.16 sous Windows 11
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par pguilpain72 »

Merci
Je ne sais pas réellement mais d'en enlever de change rien au problème sur l'affichage des photos et l'enregistrement du chemin dans la base :D
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1195
Inscription : 19 août 2018 05:20

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par Dolev »

pguilpain72 a écrit : 11 mai 2024 15:19 Je ne sais pas réellement mais d'en enlever de change rien au problème sur l'affichage des photos et l'enregistrement du chemin dans la base
Vous exécutez deux fois la même macro. Aucun intérêt. :tesfou:
Et l'erreur que vous rencontrez me semble clair. Vous récupérez mal le contrôle.
Pourquoi utiliser "CheminPhoto" qui est vide ?
Il faut vous servir de Xray pour analyser oForm :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.16 sous Windows 11
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par pguilpain72 »

Merci, je comprends mais je ne sais pas quoi faire ? C'est une macro que j'avais récupérée en 2022 et qui marche dans mon autre formulaire ?
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1195
Inscription : 19 août 2018 05:20

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par Dolev »

pguilpain72 a écrit : 11 mai 2024 16:22 je comprends mais je ne sais pas quoi faire ?
Je vous l'ai dit : il faut a minima utiliser Xray
Lisez ce tutoriel : https://beaussier.com/sections/viewtopic.php?f=8&t=158
Vous avez deux formulaires avec le même nom :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Open Office 4.1.16 sous Windows 11
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par pguilpain72 »

Merci
Xray ne fonctionne que sous Windows, pour moi c'est Linux :oops:
Linux ubuntu 22.04
Libre office 7.3.6.2
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par pguilpain72 »

Bonjour,
J'ai trouvé l'équivalent sous Linux et j'essaie de corriger.
J'ai trouvé cet exemple qui me semble vouloir mieux fonctionner
CtrlFiles.odb
.
Bonne journée

La modération vous a écrit: Merci de ne pas poster plusieurs messages à la suite, si vous devez ajouter un complément d'information, le bouton "Modifier" à la droite du message permet d'y remédier.
Image
En attendant une prochaine réponse, vous pouvez participer également en répondant à d'autres questions sur notre forum.

Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1195
Inscription : 19 août 2018 05:20

Re: [Base] Affichage photo dans un formulaire et enregistrement photo dans une table

Message par Dolev »

Pourquoi ne corrigez-vous pas le problème des 2 formulaires ? :roll:

Et Xray est une bibliothèque fournie dans un ODT qui est donc indépendante du système d'exploitation.
Open Office 4.1.16 sous Windows 11
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par pguilpain72 »

Merci
J'ai corrigé ce problème mais cela ne solutionne rien.
Mon niveau de connaissance n'est pas suffisant pour comprendre l'erreur signalée dans la macro.
Bonne journée
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26209
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par Dude »

Salut,
pguilpain72 a écrit : 13 mai 2024 09:27 J'ai corrigé ce problème mais cela ne solutionne rien.
Remets en ligne le document corrigé
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par pguilpain72 »

Voici voici
Merci :D
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26209
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par Dude »

J'ai testé et l'affichage d'une image se fait correctement.
Merci d'être un peu plus prolixe quant au problème.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par pguilpain72 »

Bonjour,
Oups !
Effectivement je m'explique en comparant ce qui se passe sur mon autre formulaire "Collection" :
Formulaire collection : lorsque je sélectionne une photo, elle s'affiche et le chemin se sauvegarde dans la table "base". Quand je passe à la fiche suivante (nouvelle ou non), il n'y a pas de photo affichée, sauf si il n'y a pas eu une sélection précédente.
Formulaire F_Pilotes : lorsque je sélectionne une photo, elle s'affiche et le chemin se sauvegarde dans la table "T_Pilotes". Quand je passe à la fiche suivante (nouvelle ou nom), la photo précédente reste affichée, si je choisi une autre photo c'est elle qui s'affiche sur la fiche précédente malgré le bon nom de fichier sauvegardé. J'ai l'impression qu'il n'y a pas de retour du fichier inscrit dans la table et l'affichage dans le formulaire ?
Mystère pour moi !
Bonne journée
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26209
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par Dude »

Corrige l'événement de ton formulaire, la macro est mal branchée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par pguilpain72 »

Bonjour,
"mal branchée" je ne comprend pas le terme branché.
Merci
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26209
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par Dude »

Ouvre le même dialogue pour comprendre la différence.
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par pguilpain72 »

Bonsoir
Désolé mais je dois être nul. Que veut dire "ouvrir un dialogue"?
Merci
Linux ubuntu 22.04
Libre office 7.3.6.2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26209
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Base] Affichage photo dans un formulaire et enregistrement en table

Message par Dude »

Dialogue est l'abréviation d'une boîte de dialogue(*). Il s'agit d'afficher les propriétés du formulaire (cf. ma copie d'écran et celle de Dolev).



(*) https://commentouvrir.com/tech/les-boites-de-dialogue-leur-utilite-et-leur-emplacement/
pguilpain72
Membre lOOyal
Membre lOOyal
Messages : 35
Inscription : 27 oct. 2022 16:32

[résolu] [Base] Affichage photo dans un formulaire et enregistrement en table

Message par pguilpain72 »

Bonjour,
J'ai trouvé la solution et cela fonctionne :

Code : Tout sélectionner

REM  *****  BASIC  *****

Sub EnregistrerChemin(oEv)
Dim oForm As Object, CheminImage as Object
	oForm = ThisComponent.DrawPage.Forms.getByName("Pilotes")
	CheminImage = oForm.getByName("TextBox")
	with CheminImage
		.Text =	oEv.Source.Text
		.commit
	end with
	AfficherImage
End Sub

sub AfficherImage
Dim oForm as Object, CheminImage as Object
	oForm = ThisComponent.DrawPage.Forms.getByName("Pilotes")
	CheminImage = oForm.getByName("TextBox")
	oForm.getByName("ImageControl").ImageURL=convertToUrl(CheminImage.Text)
end sub
Merci
Linux ubuntu 22.04
Libre office 7.3.6.2