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

Access Discussion :

Remplissage d'un formulaire à partir d'une liste déroulante.


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut Remplissage d'un formulaire à partir d'une liste déroulante.
    Bonjour,
    je souhaite effectuer un suivi de concessionnaires. Pour cela, j'ai créé différentes tables et requétes qui me donnet les chiffres que j'aimerai exploité.
    Mon problème réside dasn mon formulaire :
    - je voudrais choisir à partir d'une liste déroulante soit le nom du concessionnaire soit le code du concessionaire. COMMENT FAIRE POUR EFFECTUER CETTE RECHERCHE et FAIRE CORRESPONDRE LES DEUX LISTES ?
    - après avoir choisi soit un nom soit un code, je voudrai afficher dasn les zones de texte de mon formulaire, les resultats de mes requétes qui correspondent soit au nom soit au code selectionné. COMMENT FAIRE.

    MERCI BEAUCOUP

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Bonjour
    ATTENTION QUAND TU ECRIS EN MAJUSCULES TU CRIES ET C'EST ASSOURDISSANT !!
    Pour faire ressortir du texte utilise le BBCode

    Peux-tu reformuler ta 1e question (une à la fois ) ? Tu choisis
    à partir d'une liste
    et tu fais correspondre
    LES DEUX LISTES
    ... ça ne colle pas !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut explication
    Ce que je veux dire en fait c'est :

    j'ai deux listes déroulantes, je sélectionne soit dans une la zone soit dans l'autre la ville.
    Si j'ai choisi la zone, je voudrai qu'automatiquement la ville correspondante apparaisse dans la seconde liste
    Si j'ai choisi ma ville, je vouudrai que la zone correspondante apparaisse dans la seconde liste déroulante.

    Merci, j'espère que c'est plsu clair

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Oui c'est plus clair !

    Pour lier les listes déroulantes, vérifie qu'elles sont des contrôles "indépendants" (pas de "source contrôle" dans les propriétés).
    Ensuite, assure-toi que la "colonne liée" est la même pour les deux, de préférence une clé primaire. Tu peux masquer cette clé primaire en jouant sur les "largeurs colonnes" (par exemple, "0cm;2cm").

    Ensuite, crée un évènement "après mise à jour" pour chacune avec le code VBA suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Liste1_AfterUpdate()
      Me!Liste2 = Me!Liste1
    End Sub
     
    Private Sub Liste2_AfterUpdate()
      Me!Liste1 = Me!Liste2
    End Sub
    Là, les informations sont coordonnées entre les deux listes.


    !! Bonus !!
    Pour la deuxième étape, qui est d'afficher les informations associées, complète le code avec un filtrage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.ApplyFilter , "[Zone] = '" & Me!Liste1 & "'"
    Insère-le juste avant End Sub pour les deux procédures Afterupdate.

    Normalement, tout fonctionne.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut Merci
    Merci beaucoup..
    Pour la correspondance entre les 2 listes déroulantes, c'est bon ça marche.

    Merci beaucoup

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    De rien !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Quelques précisions concernant le filtrage.

    D'abord, il faut que le formulaire affiche tous les enregistrements avec une information unique pour chacun (la clé primaire en général, [zone] dans mon exemple).
    Ensuite, il faut que cette information unique soit celle de la colonne liée pour les deux listes déroulantes.
    Enfin, il faut parler de ce champ là dans VBA, mais si c'est un champ numérique, il faut modifier comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.ApplyFilter , "[Zone] = " & Me!Liste1
    Edit: Il y a d'autres façons de s'y prendre, en fonction du résultat voulu, comme filtrer dans la requête pour ne jamais afficher tous les enregistrements, ou changer l'ordre des champs dans les listes déroulantes (mais là ça complique )

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut Précisions
    En fait, mon problème est plus complexe je pense :
    - j'ai plusieurs tables qui contiennent différentes informations
    - j'ai effectué des requêtes afin d'extraire de ces tables les informations que je souhaite mettre dasn mon formulaire. Je filtre aussi les résultat de mes requêtes en fonction du choix que je fais dans la zone déroulante sur mon formulaire. (exemple : j'ai sélectionné le code 1200 dans la liste déroulante de mon formulaire, le resultat de ma requête est celui de ce code (Formulaires![Tableau de bord]![ChoixCode]) )
    - je souhaite dasn mon formulaire affiché les résultat de mes différentes requétes dans différentes zones de texte.

    En résumé le principe : choix d'un code dans le formulaire, données traitées par les différentes requétes, résultats de ces requétes dans les différentes zones de texe du formaulaire...

    C'est un peu complexe et assez difficile à expliquer.

    Peut etre devrais faire des sous formulaires basés sur les différentes requétes ???

    merci

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    OK, en effet ce n'est pas la configuration toute simple mais ce n'est pas complexe pour autant

    Est-ce que tous les résultats de requête qui t'intéressent peuvent être regroupés dans une seule requête ?
    Si oui, utilise-la comme source du formulaire et remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.ApplyFilter , "[Zone] = " & Me!Liste1
    parSi non, je pense que Requery permet aussi de mettre à jour les zones de texte, à vérifier. Comment affiches-tu les résultats des requêtes ?

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    je vais essayer de tout regrouper dasn une requête et je te tiens au courant ensuite..

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    il faut alors que je refasse entièrment le formulaire que j'ai fait afin de le refaire avec comme source la requêt qui centralise toute les autres requêtes?

    Si oui, est ce possible de rajouter au fur et à mesure des zones de textes dans ce formulaire?

    Merci

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut définitivement c'est trop dur pour moi
    Bon je n'arrive pas à avoir le résultat que je veux...merci qd même.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    il faut alors que je refasse entièrment le formulaire que j'ai fait
    Heureusement pas !!!
    Est-ce que ton formulaire affiche les données qu'il te faut, ou juste la mise en page ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    en fait ce que j'avais fait, c'est toute la mise en page et pour chaque zone de texte, j'avais créé un code tel que : =[Dossier FSI Non Remorqué]![Nb jrs loc FSIA] où Dossier FSI Non Remorqué est un de mes requêtes et Nb jrs loc FSIA est la valeur que je veux afficher.

    Dans ma requête, les valeurs qui apparaissent sont bien celles qui correspondent à la zone selectionnée dans la liste deroulante

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Et est-ce que ces valeurs apparaissent dans le formulaire ? Eventuellement, remplace
    =[Dossier FSI Non Remorqué]![Nb jrs loc FSIA]
    par
    =RechDom("[Nb jrs loc FSIA]";"[Dossier FSI Non Remorqué]")
    Et dans VBA, tu peux préciser le Requery (mais il faudra le faire pour chaque zone de texte à mettre à jour) :

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Non les valeurs n'apparaissent pas, c'est bien ça le problème en fait !!!!

    Avec des sous formulaires c'est un peu galère...mais bon ça me sort au moins quelques valeurs !

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Non les valeurs n'apparaissent pas
    Il faut des informations plus précises : la case reste vide, du vois NOM?, tu as un message d'erreur->lequel ? etc.
    Et est-ce que tu as testé mes propositions ? Ca donne quoi, est-ce que c'est clair ou est-ce qu'il faut préciser qch, etc.
    En fait plus tes réponses donnent d'info, plus vite on trouve la solution adaptée.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Non elles n'apparaissent pas, il y a #Nom ! qui s'affiche.

    Mais j'ai reussi à faire à peu près ce que je voulais faire en insérant des sous formulaires.
    Par contre commment actualiser les données des sous formulaires lorsque je selectionne un autre code dans la zone déroulante du formulaire principal ?

    Merci

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par mzelvivi
    est-ce que tu as testé mes propositions ?
    j'insiste, c'est pas pour t'embêter, je comprends bien que tu utilises des Oups...Edit: sous-formulaires mais je pense qu'il y a de meilleures solutions, l'intérêt du sous-formulaire est différent de ce problème-là. Teste la formule avec RechDom en propriété Source contrôle, chez moi elle marche et c'est beaucoup plus simple qu'un sous-formulaire !!
    En plus, faire des propositions ça prend du temps, alors j'aimerais au moins savoir ce que ça donne chez toi avant de te répondre pour tes autres tentatives !

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Oui j'ai bien essayé la RechDom dont tu m'avais parlé mais ça me marque "erreur". Peut être que je n'applqiue pas bien cette formule.

    C'est vrai que ça serait bien plus simple de rechercher la valeur issue de la requête correspondant au code que j'ai selectionné dans ma liste déroulante de formulaire...

    Je suis désolé d'avoir tant de mal !!!

    Merci beaucoup

Discussions similaires

  1. [AC-2013] Filtrer un formulaire à partir d'une liste déroulante
    Par Malick dans le forum VBA Access
    Réponses: 18
    Dernier message: 25/08/2014, 17h57
  2. [AC-2003] afficher un sous formulaire à partir d'une liste déroulante
    Par ojjg49 dans le forum IHM
    Réponses: 1
    Dernier message: 11/06/2010, 19h55
  3. [AC-2000] Ouvrir un formulaire à partir d'une liste
    Par JazzKDU dans le forum IHM
    Réponses: 8
    Dernier message: 13/10/2009, 11h13
  4. [XL-2000] formulaire à partir d'une liste dans différent fichiers
    Par Avinetor dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 02/06/2009, 18h51
  5. Réponses: 1
    Dernier message: 05/03/2009, 12h26

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