IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Afficher les résultats d'une recherche dans le même formulaire que la recherche


Sujet :

IHM

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Afficher les résultats d'une recherche dans le même formulaire que la recherche
    Bonjour à tous,

    Je suis impressionné devant la somme de travail de ce forum. Je suis novice en Access et vient solliciter votre aide.
    J'ai cherché dans ce forum et ailleurs mais n'ai pas trouvé de solution que j'arrive à mettre en oeuvre.

    J'ai honteusement copié le tutoriel de Caféine (que je remercie) sur la recherche multi-critères. Bien que quelques erreurs de transposition subsistent encore, mon problème actuel est d'arriver à ouvrir les résultats non pas dans un nouveau formulaire comme le tutoriel mais sur le même formulaire.

    Pour schématiser j'ai créé une table et un formulaire rattaché. Les utilisateurs n'auront accès qu'au formulaire pour saisir les données les concernant (Nom, date d'entrée, service, fonction,...) sur ce même formulaire il y a aussi les champs pour une recherche.
    Le but de cette recherche par nom est que l'utilisateur puisse arriver directement à sa fiche quand il a des modifications à faire sur sa situation.

    Jusque là c'est à peu près bon la recherche se fait. Par contre je bloque pour qu'en cliquant dans la Listbox de résultat, sur la personne voulue, ce soit les informations relatives à cette personne qui s'affichent dans les autres zones du formulaire afin que l'utilisateur puisse les modifier.

    En gros il faut que la recherche et les champs de saisi soient dans le même formulaire afin de simplifier l'utilisation. Pour reprendre le tutoriel de caféine j'essaie de faire en sorte que les 2 formulaires (celui de recherche et celui de saisie/modification) soient fusionnés en un seul mais n'y arrivant je fais appel à votre bonne volonté et connaissances.

    J'espère avoir été suffisamment clair. Merci à vous.

    Feafea

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Là, c'est relativement simple...
    Tu as besoin d'un jeu d'enregistrements contenant d'abord toutes les personnes à chercher que tu affectes à ta ComboBox avec 2 colonnes si toutefois il y a une clé primaire (recommandé) par exemple IDPersonne, Nom et dont la première est cachée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL="SELECT IDPersonne, Nom FROM TBLPersonnes ORDER BY Nom"
    Ensuite le RecordSource de ton form est une table ou une requête basé sur la même table TBLPersonne (au départ et avant recherche).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL="SELECT * FROM TBLPersonnes"
    Tu créés alors la procédure sur l'événement AfterUpdate de ta ComboBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL="SELECT * FROM TBLFournisseurs"
    où tu greffes la valeur sélectionnée dans le ComboBox à la condition WHERE...
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = SQL & vbCrLf & "WHERE IDPersonne = " & Me!cmbPersonnes
    La nouvelle source de ton formulaire (RecordSource) devient alors SQL...
    Voilà...

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci Argyronet de te pencher sur ton cas.

    Je n'ai peut être pas complètement compris tes explications mais de ce que j'ai testé ce n'est pas tout à fait ce que je cherche à faire.

    J'ai joins un fichier (mes excuses c'est un pitoyable brouillon) pour illustrer ma demande.
    La recherche marche (encore une fois merci caféine) et aboutit dans la "lstrésults" tout en bas à droite.
    J'aurai voulu qu'en cliquant ou double cliquant sur un nom tous les champs à gauche (partie orange) se remplissent avec les informations de la personne sélectionnée. Alors qu'actuellement cela est sensé ouvrir un nouveau formulaire.

    En tout cas merci
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Mmmm...
    Tu développes sur un 1600 x 1200 ???
    Mets toi à la place d'un utilisateur en 1024 x 768... car là, c'est trop grand.
    Bon, il est évident que tu as du travail.
    1/ Savoir nommer tes objets sans espaces (lire ceci)
    2/ Nommer correctement tes champs (Titre pour Nom, Nom pour Prénom... et j'en passe.)
    3/ Je te renvoie ta base avec le formulaire et la recherche locale. C'est très synthétique mais efficace.

    Argy
    Fichiers attachés Fichiers attachés
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par argyronet
    Mmmm...
    Tu développes sur un 1600 x 1200 ???
    Mets toi à la place d'un utilisateur en 1024 x 768...
    Argy
    Effectivement je n'y avais pas pensé, c'est pas bête

    J'ai un peu honte que tu ai eu à renommer plein de trucs, c'est déjà super sympa de prendre le temps de te pencher sur mon cas.

    Le problème que j'ai mal expliquer est que j'ai besoin d'une recherche qui puisse se faire sur plusieurs critères et surtout le problème de la combobox est qu'à terme je vais avoir 150 à 200 personnes ce qui risque de ne pas être très facile à utiliser. C'est pourquoi j'avais repris le tuto de caféine.

    Le truc serait à la place d'avoir:

    Private Sub lstResults_DblClick(Cancel As Integer)

    DoCmd.OpenForm "frmAutoReinsertions", acNormal, , "[Réfemployé] = " & Me.lstResults

    End Sub

    Il n'y aurait pas une commande qui permettrait de mettre à jour les champs du formulaire en fonction du nom sélectionné dans la lstRésults suite à la recherche?
    Plutôt que d'ouvrir un nouveau formulaire car les utilisateurs vont tout le temps devoir jongler avec la recherche de personnes pour les modifier, la création de nouveaux enregistrements...

    En tout cas merci pour ton aide

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Tu es obligé de rattacher ton formulaire à la table. Sinon quand tu cliques sur une ligne, tu peux faire une requête qui va chercher les infos dans les tables et par un recordset afficher les données dans les champs ad-hoc.

    Ensuite une procédure fera un update ou un insert selon que tu es en création ou en correction.

    Mais effectivement le plus simple est un autre formulaire comme proposé, sans pour autant fermer ton filtre, quitte à faire un requery sur ton filtre après la mise à jour.

    J'espère avoir été assez clair.

    Cordialement

    ChrisD70

  7. #7
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Ce qui se conçoit bien s'énnonce clairement...
    Si tu sais ce que tu veux, il n'y a aucun problème pour le faire considérant qu'il n'existe pas beaucoup d'obtacles pour réaliser un formulaire de recherche comme par exemple celui-ci :



    C'est à toi de bien penser ton truc sur papier avec toutes les hypothèses liées aux fonctionnalités que tu souhaites.
    Une fois cela établi, il n'y a plus de problème, on peut coder.
    Le plus dur étant effectivement de penser.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    J'ai oublié de vous remercier pour vos réponses.
    Surtout toi Argyronet, je me suis servi du fichier que tu m'as envoyé pour reprendre le code suivant que j'ai "adapté" à ma table:

    IDEmploye = Me!lstResults
    SQL = "SELECT * FROM TBLReinsertions WHERE RéfEmployé =" & IDEmploye
    Me.RecordSource = SQL

    Et c'est tout bon j'ai maintenant le reste de mon formulaire qui se met à jour quand je clique sur un des résultats trouvé par ma recherche.

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/04/2012, 15h39
  2. Réponses: 3
    Dernier message: 26/09/2011, 21h27
  3. Afficher les résultats d'une requête dans un tableau
    Par zoro007 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/08/2010, 09h30
  4. [XL-2003] Afficher les résultats d'une macro dans une fenêtre popup
    Par sphyncks dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2009, 09h39
  5. Réponses: 17
    Dernier message: 08/10/2007, 22h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo