Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2011, 15h38   #1
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 37
Points : 11
Points : 11
Par défaut Se positionner dans un Form à partir d'un autre

Bonjour,

Le contexte : J'ai un formulaire 1 ouvert qui contient un bouton "recherche". Le clic sur le bouton ouvre un formulaire 2 de recherche. L'utilisateur introduit des critères et lance la recherche. Le résultat est mis dans une liste (sur le formulaire 2). L'utilisateur doit sélectionner une ligne de la liste et revenir sur le formulaire 1 qui doit afficher les données qui correspondent à la sélection.

La question : comment faire pour que le formulaire 1 affiche les données qui correspondent à la sélection faite dans le formulaire 2 ?
Comme le formulaire 1 est déjà ouvert, un docmd.openform ne me paraît pas la bonne solution.

Merci d'avance à toute bonne idée ou exemple.
voxov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2011, 15h48   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

C'est très vague tout ça.

Quelle liste utilises-tu dans form 1 pour afficher le résultat ?

Dans tous les cas tu doit regarder le tuto sur les appels formulaires sur ma page perso. Il y a les syntaxes pour les discussion d'un form à un autre.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 13h20   #3
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 37
Points : 11
Points : 11
Merci pour ta réponse, loufab.

Je vais expliquer la chose avec un exemple.

Disons que le formulaire 1 affiche les données sur une personne (nom, date de naissances, adresse, etc.). La source est un query sauvegardé avec idPersonne pour identifiant. Ce formulaire contient un bouton qui ouvre le formulaire 2 (DoCmd.OpenForm formulaire2, acNormal).

Le formulaire 2 est une recherche multicritère du genre "remplissez ce que vous cherchez" : il y a plusieurs champs (nom, code postal, localité, etc.) que l'utilisateur peut remplir ou laisser vides, et un bouton "Recherche". Le clic sur ce bouton prépare une requête en SQL (MyQuery) et la met comme source dans une zone de liste (Me.zResultat.RowSource = MyQuery).

Comme il peut y avoir plusieurs lignes dans cette liste (1 ligne = 1 personne), l'utilisateur doit sélectionner celle qu'il recherchait (Me.zResultat = idPersonne de la ligne sélectionnée), fermer le formulaire 2 et ...

c'est là que ça se complique : il faut que l'utilisateur revienne sur le formulaire 1 (qui était resté ouvert) et que ce soit la personne sélectionnée dans le formulaire 2 qui soit affichée dans le formulaire 1.

Ce serait simple si je pouvais ouvrir le formulaire 1 sur la personne sélectionnée, mais je ne peux pas faire comme cela. Il faut que le formulaire 1 "bouge" jusqu'à la personne sélectionnée dans le formulaire 2.

Merci d'avance pour tes conseils et tes idées.
voxov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 15h43   #4
Membre du Club
 
Inscription : juin 2009
Messages : 86
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 86
Points : 59
Points : 59
ça ne marcherait pas avec un bookmark ?

par ex :

Code :
1
2
3
4
5
Set rstPersonne = forms("Form1").RecordsetClone
rstPersonne.FindFirst "idPersonne = " & forms("Form2")!idPersonne
If rstPersonne.NoMatch = False Then
   forms("Form1").Bookmark = rstPersonne.Bookmark
endif
Begon0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 16h24   #5
Candidat au titre de Membre du Club
 
Inscription : février 2007
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 37
Points : 11
Points : 11
Merci pour la suggestion.
Oui, peut-être. Je vais essayer.
Je mets où ce code (quel form, quel evmt) ?
voxov est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 17h29   #6
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
En effet le Bookmark est la solution.

Il faut mettre ce code dans l'événement Après Maj de la liste de sélection de la personne.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h11.


 
 
 
 
Partenaires

Hébergement Web