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 :

[A-03] une requête pour lier deux liste déroulante dans un formulaire continu


Sujet :

IHM

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 20
    Points
    20
    Par défaut [A-03] une requête pour lier deux liste déroulante dans un formulaire continu
    Bonjour,

    Petit exposé du problème :
    L'asso pour qui est destiné cette base facture des assurances pour d'autre assos.
    Il y a plusieurs type d'assurance (donc plusieurs produits) mais chacune de ces assurance peut avoir un prix différent. Donc pour un même intitulé d'assurance, je peux facturer 2 prix différents.

    Pour faire plus rapide, une petite copie d'écran de la partie qui concerne la facturation dans ma base :




    J'ai un formulaire facture, avec un sous-formulaire détail facture en mode continu. J'y ai créé deux liste déroulantes :
    Une pour la sélection du type d'assurance
    Une autre pour la sélection du prix qui lui est appliqué

    J'ai donc créé une requête pour filtrer la seconde liste en fonction du choix de la première.. jusque là, pas de soucis.
    la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT T_AssParametre.Ass_Ref, T_AssParametre.ParamAs_Annee, T_AssParametre.ParamAs_1, T_AssParametre.ParamAs_2, T_AssParametre.ParamAs_3 FROM T_AssParametre WHERE (((T_AssParametre.Ass_Ref)=[refAs]));
    Pour que la seconde liste se mette bien à jour à chaque changement de choix dans la premier liste, j'ai mis le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub refAs_AfterUpdate()
    Me![ParamAs_Ref].Requery
    End Sub
    Tout fonctionne bien, sauf que s'agissant d'un sous-formulaire en mode continu, lorsque je passe au second enregistrement, la liste du premier enregistrement change avec celle du second

    Comment faire pour palier au problème ? je veux pouvoir depuis mon sous formulaire, choisir le type d'assurance et le prix qui y est appliqué..

    Ma méthode est-elle la bonne, et je dois juste trouver le truc pour éviter de mettre tous les enregistrements de mon sous formulaire à jour en cascade ?
    Ou bien est-ce que je me plante complètement ?

    merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    j'ai édité mon post pour tenter de le clarifier et d'être un peu plus concise..

    si quelqu'un pouvait m'aider ?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour mouam,
    as-tu indiqué dans la propriété Source contrôle de tes listes déroulantes le nom du champ de la table T_DetailFacture qui leur correspond ?

    La première liste déroulante doit avoir
    Source contrôle : Ass_Ref
    Contenu : T_Assurance
    et la deuxième liste déroulante
    Source contrôle : ParamAs_Ref
    Contenu : SELECT ... FROM T_AssParametre WHERE ....

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 28
    Points : 20
    Points
    20
    Par défaut
    Oui oui.. j'ai bien revérifié tout ça. Là ce que j'ai fait c'est mes deux liste qui ensuite renvoient le résultat de la sélection dans les champs ad'hoc. Mais j'aimerais au moins pouvoir n'afficher ces listes déroulantes que sur l'enregistrement en cours...

    je crois que le problème vient vraiment du fait qu'Access ne gère pas la différenciation des enregistrements dans le formulaire continu non ?
    Est-il possible de n'affecter un événement (code ou requête) dans un formulaire continu mais uniquement sur l'enregistrement sur lequel est le focus ?
    si oui, comment ça se déclare ?

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonsoir mouam,
    essaie avec ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub RefAs_AfterUpdate()
    ParamAs_Ref.RowSource="SELECT * FROM T_AssParametre WHERE T_AssParametre.Ass_Ref=" & [Ass_Ref] & ";")

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/12/2013, 16h11
  2. [AC-2010] Pb de requête source d'un liste déroulante dans sous formulaire
    Par alexandre.beaujault dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 11/09/2013, 10h45
  3. [AC-2000] Lier deux Listes modifiables dans un formulaire tableau
    Par BW7541 dans le forum IHM
    Réponses: 0
    Dernier message: 07/11/2009, 16h17
  4. Réponses: 6
    Dernier message: 23/09/2008, 15h57
  5. lier deux liste deroulante dans un formulaire flash
    Par popogendarme dans le forum Coldfusion
    Réponses: 2
    Dernier message: 19/07/2007, 21h15

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