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 :

Resultats d'un formulaire de recherche


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut Resultats d'un formulaire de recherche
    Bonjour à tous,

    Connaissant la compétence des visiteurs de ce forum, je suis certain que vous pourrez m'aider, car je bloque.

    Je m'explique :

    J'ai créé un formulaire dans lequel j'ai 3 listes déroulantes.

    La première selectionne une table
    La deuxième selectionne un champ de la table précedemment choisi
    La troisième selectionne une liste d'un enregistrement du champ selectionné.

    J'aimerai faire afficher les informations relatives à cet enregistrement, en cliquant sur un bouton, dans un formulaire (par exemple).

    Je débute en VBA. Merci mille fois de votre aide.

    Olivier

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Salut,

    Tout d'abord il faut que la valeur sélectionnée dans ta liste 3 soit unique (Champ avec clé primaire de la table source du formulaire que tu souhaites ouvrir ):

    Pour commencer, regarde du côté de la méthode OpenForm:

    Un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "TonFormulaire", , ,"TonChamp = " & Me!TaListe3.Value
    Si le contenu de ta liste déroulante 3 (valeur sélectionnée) est numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "TonFormulaire", , ,"TonChamp = '" & Me!TaListe3.Value & "'"
    Si le contenu de ta liste déroulante 3 (valeur sélectionnée) est du type texte.
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par User Voir le message
    Salut,

    Tout d'abord il faut que la valeur sélectionnée dans ta liste 3 soit unique (Champ avec clé primaire de la table source du formulaire que tu souhaites ouvrir ):

    Pour commencer, regarde du côté de la méthode OpenForm:

    Un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "TonFormulaire", , ,"TonChamp = " & Me!TaListe3.Value
    Si le contenu de ta liste déroulante 3 (valeur sélectionnée) est numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "TonFormulaire", , ,"TonChamp = '" & Me!TaListe3.Value & "'"
    Si le contenu de ta liste déroulante 3 (valeur sélectionnée) est du type texte.
    Merci User de ta réponse aussi rapide.

    J'ai plusieurs questions :

    - Il faut que je mette sur un evenement "OnClick" d'un bouton (par exemple ?)

    - Quand tu dis : " Tout d'abord il faut que la valeur sélectionnée dans ta liste 3 soit unique (Champ avec clé primaire de la table source du formulaire que tu souhaites ouvrir )". Tout dépends du champ choisi (liste déroulante 2), car je ne peux pas avoir plusieurs clés primaire dans une même table. Je ne saisi pas trop ce que tu veux dire

    Merci pour ton aide

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Re,

    - Il faut que je mette sur un evenement "OnClick" d'un bouton (par exemple ?)
    Oui par exemple.

    - Quand tu dis : " Tout d'abord il faut que la valeur sélectionnée dans ta liste 3 soit unique (Champ avec clé primaire de la table source du formulaire que tu souhaites ouvrir )". Tout dépends du champ choisi (liste déroulante 2), car je ne peux pas avoir plusieurs clés primaire dans une même table. Je ne saisi pas trop ce que tu veux dire
    Juste un exemple:

    TaListe3
    --1--
    --2--
    --3--

    Table_Enregistrement
    Index-|-Champ1....
    --1---|---A---
    --2---|---A---
    --3---|---B---
    --4---|---B---
    --5---|---B---

    Comme tu peux le constater les valeurs contenues dans le champ Index de la table_enregistrement sont tous différents et donc unique ce qui permet d'identifier chacun des enregistrements de la table.

    Dans ce cas le code suivant fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "TonFormulaire", , ,"Index = " & Me!TaListe3.Value
    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par User Voir le message
    Re,



    Oui par exemple.



    Juste un exemple:

    TaListe3
    --1--
    --2--
    --3--

    Table_Enregistrement
    Index-|-Champ1....
    --1---|---A---
    --2---|---A---
    --3---|---B---
    --4---|---B---
    --5---|---B---

    Comme tu peux le constater les valeurs contenues dans le champ Index de la table_enregistrement sont tous différents et donc unique ce qui permet d'identifier chacun des enregistrements de la table.

    Dans ce cas le code suivant fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "TonFormulaire", , ,"Index = " & Me!TaListe3.Value
    A+
    Merci beaucoup de ta réponse.

    Concrètement, j'ai une liste déroulante que j'ai appellé cbo_table, une autre liste déroulante que j'ai appellé cbo_champ et le troisième que j'ai appellé cbo_critere.

    Mon formulaire dans lequel je veux afficher mes résultats s'appelle GTH_req
    Ma clé primaire est sur un numéroAuto pour certaines tables, mais sur des champs pour d'autres tables.
    Donc par rapport à ton code, cela correspondrait à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "GTH_req", , ,"numéroAuto = " & Me!cbo_critere.Value
    Ai-je bien compris ?

    Merci de ton aide

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Re,

    Dans un premier temps,
    Il faut que la table ou requête source du formulaire GTH_req est comme clé le champ numéroAuto et que ce soient des valeurs de ce même champ numéroAuto qui soient affichées dans la liste cbo_critere.

    Si oui essaie ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "GTH_req", , ,"numéroAuto = " & Me!cbo_critere.Value
    et reviens nous dire ce qui se passe...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Quand tu dis :

    " Il faut que la table ou requête source du formulaire GTH_req est comme clé le champ numéroAuto et que ce soient des valeurs de ce même champ numéroAuto qui soient affichées dans la liste cbo_critere ", tout dépends ce que l'utilisateur a choisi dans la liste déroulante (n°2).

    En tout cas, en ayant insérer le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "GTH_req", , , "Numéro = " & Me!cbo_critere.Value
    , voici le message d'erreur que j'ai :

    Erreur d'exécution '3075':
    Erreur de syntaxe (opérateur absent) dans l'expression 'Numéro ='.

    Merci pour ton aide

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Re,

    As-tu sélectionné un item dans ta liste cbo_critere ?
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Re,

    Autant pour moi... Je n'avais pas sélectionner d'Item...

    Maintenant, lorsque je sélectionne une table puis un champ et une valeur de recherche, j'ai une fenêtre "Entrer une valeur de paramètre", alors que je souhaiterai avoir tous les enregistrements correspondants à la valeur de recherche choisie...

    Merci pour ton aide très très précieuse...

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Re,

    Peux-tu nous donner la table source de ton formulaire GTH_req, ou le sql complet de la requête source:

    [Numéro] est-il un champ de cette table ou requête source ?
    Que se passe-t-il quand tu ouvres manuellement le formulaire GTH_req ?

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par User Voir le message
    Re,

    Peux-tu nous donner la table source de ton formulaire GTH_req, ou le sql complet de la requête source:
    le formulaire GTH_req est basé sur une table (Cope), .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Cope.*, Cope.[Repère Fonctionnel]
    FROM Cope
    WHERE (((Cope.[Repère Fonctionnel]) Like 'XA' & '*'));


    [Numéro] est-il un champ de cette table ou requête source ?
    [Numéro] est un NuméroAuto donc il fait parti de la table
    Que se passe-t-il quand tu ouvres manuellement le formulaire GTH_req ?
    Cela me liste tous les enregistrements contenu dans la table 'Cope'

    A+
    Si je prends une autre table que la table 'Cope' et je choisi un autre champ que Repère Fonctionnel, avec d'autres critères, voici le message que j'ai :

    Erreur d'exécution '3075'
    Erreur de syntaxe (opérateur absent) dans l'expression 'Numéro = .........'.

    Merci pour ton aide

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Re,

    Il faudrait que je vois ta base car sinon on pédale un peu dans la semoule
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Salut,

    Oui effectivement ce serait bien...

    Avant de lancer ma détresse sur le forum, j'avais essayé d'adapter le tutoriel " Création d'un formulaire de recherche multicritères " (http://jeannot45.developpez.com/arti...multicriteres/), mais tout ne fonctionnait pas.

    Je t'avoue que je suis un peu perdu avec tout ça...

    Je pourrai relancer de refaire le formulaire suivant le tutoriel et me permettre de te contacter si j'ai un souci

    Merci de ton aide

  14. #14
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Re,

    Finalement j'en déduit que personne ne peux m'aider pour réaliser un formulaire multi-critère de recherche.

    Merci en tout cas à User de s'être pencher sur le sujet

  15. #15
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    A vrai dire, les documents rédigés sur ce site ont été testé des milliers de fois par d'autres visiteurs sans jamais de soucis. C'est peut être tout simplement que tu ne disposes pas des bases suffisantes pour te lancer dans un tel travail.

  16. #16
    Membre du Club
    Inscrit en
    Mai 2007
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 181
    Points : 55
    Points
    55
    Par défaut
    Il y a des adaptations qui sont à faire, mais je pense avoir les bases necessaires pour développer.

    Personne n'est parfait !!

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/05/2011, 18h25
  2. [MySQL] mettre le formulaire et les resultats d'un moteur de recherche sur la meme page
    Par VIRGINIE87 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/08/2010, 09h42
  3. Réponses: 2
    Dernier message: 01/11/2009, 19h56
  4. Réponses: 3
    Dernier message: 20/10/2005, 12h42
  5. Réponses: 5
    Dernier message: 18/10/2005, 14h09

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