Access : Photo qui ne se met pas à jour (VBA)

Panda -  
 Panda -
Bonjour,

j'ai une Table avec plusieurs champs dont un qui contient un nom de fichier, qui correspond à la photo de l'enregistrement.
dans un premier formulaire "recherche" je peux effectuer une recherche en fonction de plusieurs critères. lorsque je double clique sur un des résultats de ma recherche, j'ouvre un second formulaire "Fiche" qui est ni plus ni moins que la fiche correspondante à l'enregistrement sélectionné.
le problème vient du fait que j'ai une fonction qui récupère le contenu de mon TxTPhoto (contenant le nom du fichier photo) et l'attribue à un contrôle image sur "Fiche"
or ce TxtPhoto n'est pas encore mis à jour lors du lancement de ma fonction. ma Fiche s'ouvre bien avec le bon enregistrement, mais lorsque la fonction d'affichage de la photo se déclenche, le champs TxtPhoto n'est pas encore mis à jour, ce qui fait que j'ai la photo qui correspond à l'enregistrement précédent dont j'ai consulté la fiche. j'ai beau avoir essayé de lancer ma fonction sur toutes les propriétés de mon formulaire "Fiche" (load, activate...), rien n'y fait.
pour résumer, quand j'ouvre la fiche de B, j'ai les infos de B, mais la photo de A, quand j'ouvre C, j'ai les infos de C mais la photo de B....
la meilleure solution trouvée c'est de remplir mon TxTphoto avant d'ouvrir ma Fiche via le code de "Recherche":

Forms.Fiche.TxtPhoto = DLookup("[Photo]", "Table", "[N°] = " & Me.LstResultats)
DoCmd.OpenForm "Fiche", acNormal, , "[N°] = " & Me.LstResultats

ça marche dans 99% des cas. le seul cas qui plante, c'est l'ouverture de la première fiche où il ne connait pas Forms.Fiche.TxtPhoto avant l'ouverture de "Fiche"

il me faudrait un code qui fonctionne à 100%, ou trouver à quel moment je peux déclencher ma fonction pour que mon champs TxtPhoto soit déjà mis à jour.

merci de votre aide.

1 réponse

Panda
 
erratum:
ça ne marche pas!
il y a un problème majeur avec ma solution.
le formulaire "recherche" rempli bien le TxtPhoto de "Fiche" avant d'ouvrir le formulaire "Fiche" et ça affiche bien la bonne photo. seulement, quand "Fiche" est finalement mis à jour avec le bon enregistrement, il enregistre l'ancien mais avec la nouvelle photo. en résumé:
1) "Recherche" rempli TxtPhoto de "Fiche" avec l'enregistrement courant (B)
2) "Recherche" ouvre "Fiche"
3) une fonction dans "Fiche" met à jour la photo grâce à TxtPhoto
4) "Fiche" enregistre l'ancien enregistrement (A) avant de mettre à jour avec B, mais on a les données de A avec la photo de B donc c'est modifié dans la Table
5) "Fiche" se met à jour avec les champs de B

il faut que je trouve le moyen de déclencher ma fonction entre 4) et 5) mais apparemment ni load, ni activate ni... de Form ne fonctionnent, ils interviennent toujours avant 4)

une idée?
0