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 :

Question pour Concevoir une liste qui en alimente une autre [AC-2010]


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut Question pour Concevoir une liste qui en alimente une autre
    Bonjour a tous,
    Je viens vers vous car je suis a court d'idée pour m'en sortir seul, laissez moi expliquer rapidement mon probleme qui vous paraitra surement pas tant problématique que ca !
    Etant reponsable de la création d'un petite BDD sur Access dans le cadre d'un stage en Irlande, je souhaitais créer dans un formulaire Deux listes interdépendantes entre elles. Pour ce faire je me suis beaucoup aidé de ce Tuto qui m'a foi est plutot bien fait pour les amateurs tel que je suis, merci Jean-Philippe AMBROSINO
    voici donc le lien du Tuto en question ! http://argyronet.developpez.com/offi...ectitemlistAB/
    cependant étant relativement nouveau dnas le domaine du VBA (disons 2 semaines) et ayant apris comme je l'ai pu au travers de differentes discussion sur ce forum, j'ai essayé d'appliqué le code indiqué a ma Base Access; ce qui me donne ce qui suis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Combo55_AfterUpdate()
    Dim lngIDBus   As Long
    Dim SQL        As String
     
     If Not IsNumeric(Me!Combo55) Then Exit Sub
     lngIDBus = Me!Combo55
     SQL = "SELECT TBLTG.IDTA, TBLTG.[Business Unit], TBLTG.[Therapeutic Group]FROM TBLTG WHERE TBLTG.[Business Unit]=" & lngIDCat & " ORDER BY Therapeutic Group]"
     Combo53.RowSource = SQL
     Combo53.Enabled = True
     Combo53.SetFocus
     Combo53.Dropdown
     
    End Sub
    Le probléme qui me turlupine maintenant est que lors de la selection dans ma premiere Combo Box (Combo55) la valeur de s'affiche pas aprés selection et qui plus est la comboBox53 reste vérouillée.
    Donc voila grossiérement mon probleme, en esperant avoir été assez clair.

    Merci d'avance pour votre aide


    TH

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    J'ose espérer que ce n'est qu'une question d'inattention, tu as oublié un crochet ouvert avant de trier par Therapeutic Group
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT TBLTG.IDTA, TBLTG.[Business Unit], TBLTG.[Therapeutic Group]FROM TBLTG WHERE TBLTG.[Business Unit]=" & lngIDCat & " ORDER BY [Therapeutic Group]"
    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Bonjour madefemere,
    merci pour ta reponse!!
    Oui effectivement il s'agissait d'une erreur d'inattention. Cependant apres correction cela ne fonctionne toujours pas, ma premiere combo box reste sans contenu et la seconde ne se dévérouille pas.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    Est-ce que tu peux afficher la source de ton Combo55, ses propriétés Nbre Colonnes, Colonne liée et largeurs colonnes s'il te plait.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Voila comme demandé;

    Cordialement

    TH

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    Donc, tu n'as dans Combo55 que les valeurs de Id de Business Unit. Tu peux réduire le nombre de colonnes à 1 dans ce cas et adapter en conséquence le nombre de colonnes (ce n'est pas la cause du problème normalement).

    Par contre, en relisant ton code, tu utilises la variable lngIdBus pour assigner la valeur de ton Combo55, alors que dans ton code SQL, tu utilises un autre variable : lngIDCat comme filtre, peut-être il faut mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     lngIDBus = Me!Combo55
    SQL = "SELECT TBLTG.IDTA, TBLTG.[Business Unit], TBLTG.[Therapeutic Group]FROM TBLTG WHERE TBLTG.[Business Unit]=" & lngIDBus & " ORDER BY Therapeutic Group]"
    Je n'ai pas compris si la première combo marche ou non pour le moment !

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Re,
    Oui effectivement j'ai remarqué l'erreur sur la variable je l'ai modifié du coup le premier Combo fonctionne (Combo55).
    J'ai appliqué les modifications sur le nombre de colonnes et comme tu l'as dis cela ne regle pas le probleme

    Voici le code pour le moment:
    -------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Combo55_AfterUpdate()
    Dim lngIDBus   As Long
    Dim SQL        As String
     
     If Not IsNumeric(Me!Combo55) Then Exit Sub
     lngIDBus = Me!Combo55
     SQL = "SELECT * TBLTG.[IDTA], TBLTG.[Business Unit], TBLTG.[Therapeutic Group]FROM TBLTG WHERE TBLTG.[Business Unit]=" & lngIDBus & " ORDER BY [Therapeutic Group]"
     Combo53.RowSource = SQL
     Combo53.Enabled = True
     Combo53.SetFocus
     Combo53.Dropdown
     
    End Sub
    --------

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Mets tes codes entre les délimitateurs parce que c'est assez difficile de lire (Tu le sélectionnes et tu coches sur le # en haut).

    J'ai dû être étourdi aussi. Donc, le SQL devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT TBLTG.[IDTA], TBLTG.[Business Unit], TBLTG.[Therapeutic Group] FROM TBLTG WHERE TBLTG.[Business Unit]=" & lngIDBus & " ORDER BY [Therapeutic Group]"
    Un * trainait encore avant la liste de tes champs.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Salut madefemere,
    Merci pour ta reponse j'ai retiré * au debut du SQL cependant la deuxieme combo box reste inaxessible. Voila le code (dans le delimitateur, merci pour le conseil)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Combo55_AfterUpdate()
    Dim lngIDBus   As Long
    Dim SQL        As String
     
     If Not IsNumeric(Me!Combo55) Then Exit Sub
     lngIDBus = Me!Combo55
     SQL = "SELECT TBLTG.[IDTA], TBLTG.[Business Unit], TBLTG.[Therapeutic Group]FROM TBLTG WHERE TBLTG.[Business Unit]=" & lngIDBus & " ORDER BY [Therapeutic Group]"
     Combo53.RowSource = SQL
     Combo53.Enabled = True
     Combo53.SetFocus
     Combo53.Dropdown
     
    End Sub

    Aurais tu une idée de ce qui ne fonctionne pas ?

    Cordialement

    TH

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Donc, a priori, le combo55 fonctionne.
    Qu'est-ce qui ne fonctionne pas dans le Combo53 ? Tu n'as pas les données, cela ne s'affiche pas ??
    Vérifies les propriétés que j'ai demandées pour le Combo55 précédemment pour le Combo53 : Nbre de colonnes, Largeurs de colonnes et Colonnes liée.
    Si tu as 3 avec des largeurs, normalement tu devrais avoir ta zone de liste.
    Sinon fais un Debug.Print SQL dans ton code.
    Par hasard, est-ce que le Business Unit de la table TBLTG contient bien une valeur ?

    Cordialement
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  11. #11
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Re-,
    Du coup oui j'ai vérifiéje vois pas vraiment de probleme a ce niveau ( Voir les capture d'écran)
    A part ca toute les deux tables ont des entrées.
    Et le probleme est que c'est la propriété Active(Enable) qui est sur "no" ce qui verouille la Combo53.
    Par contre pour le Debug.Print SQL peux-tu m'expliquer rapidement comment faire car comme je l'ai dis precedement je suis un grand novice!

    Merci !

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    J'ai des doutes sur les résultats du code effectivement sur le Combo53 parce qu'il garde comme source la table "Therapeutic group".
    Tu es sûr que ton combo se nomme Combo53 ? Vérifies son nom s'il te plait.
    De même aux lignes 8-9-10-11, mets un Me. avant pour utiliser l'intellisense et rajoutes un Option Explicit dans la déclaration de ton module (au tout début de tes codes) pour qu'Access vérifies les déclarations des variables.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  13. #13
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut
    Re-,
    Du coup j'ai fais ce que tu as dis, le nom est bien Combo53.
    A part ca j'ai ajouter au cod ece que tu m'as dis ce qui done donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Combo55_AfterUpdate()
    Option Explicit
    Dim lngIDBus   As Long
    Dim sql        As String
     
     If Not IsNumeric(Me!Combo55) Then Exit Sub
     lngIDBus = Me!Combo55
     sql = "SELECT TBLTG.[IDTA], TBLTG.[Business Unit], TBLTG.[Therapeutic Group]FROM TBLTG WHERE TBLTG.[Business Unit]=" & lngIDBus & " ORDER BY [Therapeutic Group]"
     Me.Combo53.RowSource = sql
     Me.Combo53.Enabled = True
     Me.Combo53.SetFocus
     Me.Combo53.Dropdown
     
    End Sub
    Quand j'essaie de selectionner une option dans le premier combo desormais voila ce qui s'affiche (cf. piece jointe)



    Merci pour ton aide en tout cas

    Cordialement

  14. #14
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    J'ai des doutes sur des trucs.
    Est-ce que tu peux poster ta base en enlevant toutes les données sensibles, compactée et zippée pour que je regarde.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  15. #15
    Membre du Club
    Homme Profil pro
    Process Improvment
    Inscrit en
    Mai 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Process Improvment
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 89
    Points : 53
    Points
    53
    Par défaut Re
    bonjour a tous,
    Apres l'aide de madefemere voila le code que j'obtiens pour la création de 4 menu déroulants liés:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Option Compare Database
    Option Explicit
    Dim sqlSource As String
     
     
    Private Sub CmbBusinessUnit_AfterUpdate()
     
    sqlSource = "SELECT TBLTG.IDTG, TBLTG.[Therapeutic Group], TBLTG.[Business Unit]" _
                & " FROM TBLTG" _
                & " WHERE TBLTG.[Business Unit]=" & Me.CmbBusinessUnit
    Me.CmbTherapeuticGroup.RowSource = sqlSource
    Me.CmbTherapeuticGroup.Enabled = True
    Me.CmbTherapeuticGroup.SetFocus
    Me.CmbTherapeuticGroup.Dropdown
     
    End Sub
     
     
    Private Sub CmbTherapeuticGroup_AfterUpdate()
    sqlSource = "SELECT TBLKeyIndication.IDKI, TBLKeyIndication.[Key Indication], TBLKeyIndication.[Therapeutic Group]" _
                & " FROM TBLKeyIndication" _
                & " WHERE TBLKeyIndication.[Therapeutic Group] =" & Me.CmbTherapeuticGroup _
                & " ORDER BY TBLKeyIndication.[Key Indication]"
     
    Me.CmbKeyIndication.RowSource = sqlSource
    Me.CmbKeyIndication.Enabled = True
    Me.CmbKeyIndication.SetFocus
    Me.CmbKeyIndication.Dropdown
     
    End Sub
     
    Private Sub CmbKeyIndication_AfterUpdate()
    sqlSource = "SELECT TBLSecondaryIndication.IDSI, TBLSecondaryIndication.[Secondary Indication], TBLSecondaryIndication.[Key Indication]" _
                & " FROM TBLSecondaryIndication" _
                & " WHERE TBLSecondaryIndication.[Key Indication] =" & Me.CmbKeyIndication _
                & " ORDER BY TBLSecondaryIndication.IDSI"
    Me.CmbSecondaryIndication.RowSource = sqlSource
    Me.CmbSecondaryIndication.Enabled = True
    Me.CmbSecondaryIndication.SetFocus
    Me.CmbSecondaryIndication.Dropdown
     
    End Sub
    Cependant cela ne fonctionne pas sur les deux derniers menu..
    madefemere que tu avais oublié de raffraichir les valeurs de Key Indications et Secondary Indication en leur assignant la valeur Null. cependant je ne vois pas du tout ce que tu veux dire par la je n'arrive pas a trouver le probleme. Si tu pouvais me dire quoi faire je t'en serais infiniment reconnaissant.

    Merci d'avance pour ton aide

    Bien Cordialement

    TH

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

Discussions similaires

  1. Concevoir une liste qui en alimente une autre
    Par argyronet dans le forum IHM
    Réponses: 17
    Dernier message: 14/08/2020, 17h21
  2. [AC-2007] Concevoir une liste qui en alimente une autre, probleme
    Par Gauthier33 dans le forum VBA Access
    Réponses: 2
    Dernier message: 12/02/2015, 08h53
  3. Réponses: 13
    Dernier message: 06/02/2013, 14h53
  4. Réponses: 8
    Dernier message: 23/06/2011, 17h58
  5. [AC-2007] Inserer la valeur dans une table avec une liste qui en alimente une autre
    Par DidoFido dans le forum VBA Access
    Réponses: 6
    Dernier message: 03/12/2009, 11h39

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