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

VBA Access Discussion :

Résultat requête vers liste déroulante [AC-2013]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut Résultat requête vers liste déroulante
    Bonjour à tous,


    J'exécute un requête SQL qui me permet de sélectionner les références commençant par " TXT821" . J'aimerai que les références correspondantes soient importées dans ma liste déroulante : liste_gamme2.
    Avec mon code actuel, j'arrive à importer uniquement la première valeur.

    Comment faire pour qu'il maffiche toutes les valeurs correspondantes dans ma liste déroulante ?

    Merci d'avance



    Voici mon code actuel :

    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
    Private Sub liste_xx_Click()
     
     
    Dim sSQL As String
     
     
    If liste_xx.Value = "TXT821" Then
     
     
    sSQL = "SELECT TITI.[toto] FROM TITI GROUP BY TITI.[toto] HAVING (((TITI.[toto]) Like 'TXT821*'))"
     
    liste_gamme2.Value = CurrentDb.OpenRecordset(sSQL).Fields(0).Value
     
     
    End If
     
     
    End Sub

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Bonjour,

    https://msdn.microsoft.com/fr-fr/library/ff835328.aspx parcours ton recordset et ajoute tes valeurs.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu essayé de mettre la requête SQL directement dans la propriété RowSource de ta liste ?

    Philippe

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour, merci pour vos réponses


    https://msdn.microsoft.com/fr-fr/library/ff835328.aspx parcours ton recordset et ajoute tes valeurs.
    Je pense que je ne dois pas comprendre comment fonctionne ListBox , je n'arrive à le faire fonctionner et l'adapter à mon cas. strItem = sSQL ? ; Item = ??


    As-tu essayé de mettre la requête SQL directement dans la propriété RowSource de ta liste ?
    J'ai essayé comme tu m'as dit mais il m'affiche une erreur pour cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.liste_gamme2.RowSource = "SELECT TITI.[toto] FROM TITI GROUP BY TITI.[toto] HAVING (((TITI.[toto]) Like 'TXT821*'))"
    erreur : "Ce n'est pas une valeur correcte pour la propriété OrigineSource ou une erreur de compilation s'ent produite dans la fonction"


    Merci d'avance

  5. #5
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Ta requête marche t-elle de manière indépendante?
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  6. #6
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    En effet j'ai testé ta requête et elle fonctionne bien. On va donc l'appeler (la requête bien sûr) rqtoto. Tu vas donc créer ta liste déroulante et en mode création, tu va ouvrir les propriétés de ta liste déroulante et dans le menu Données -> Contenu tu vas ajouter ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [rqtoto].[toto] FROM [rqtoto];
    Ceci est simplement possible sans passer par le VBA.
    Cordialement.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour Bertiny , merci de ta réponse

    Je n'arrive pas à faire fonctionner ta méthode , mais j'ai quand même réussit à la faire fonctionner: dans l'onglet "Données" pour "Contenu" = rqtoto , "Source contrôle" = toto et "Origine source" = Table/requête
    En remplissant ces 3 champs cela fonctionne !

    Mais ce n'est pas exactement ce que je désire obtenir. J'essaye de le faire en VBA car j'aimerai remplir la liste suivant 3 conditions : commençant par TXT821 , TXT852 et TXT892. (et donc exécuter une requête pour ces 3 conditions)

    Si tu as la solution en VBA je suis preneur


    Merci d'avance.

  8. #8
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Citation Envoyé par Aleexx Voir le message
    J'essaye de le faire en VBA car j'aimerai remplir la liste suivant 3 conditions : commençant par TXT821 , TXT852 et TXT892. (et donc exécuter une requête pour ces 3 conditions)
    Bonjour Aleexx,
    Pour une liste déroulante ou une zone de liste dont l'origine source est Table/Requête, la syntaxe est correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.liste_gamme2.RowSource = "SELECT TITI.[toto] FROM TITI GROUP BY TITI.[toto] HAVING (((TITI.[toto]) Like 'TXT821*'))"
    Donc, poste la requête réelle et nom pas toto from TITI et surtout ton code complet, car il est possible que cela soit autre chose dans la syntaxe qui provoque l'erreur.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour tee_grandbois ,

    Il se peut que je n'ai pas été suffisamment claire dans mes explications. En fonction de la valeur sélectionnée dans la première liste " wp ", j'aimerai qu'il m'affiche les références correspondantes dans la liste " gamme ".

    Nom : 2017-09-13 13_49_11-Formulaire_suivi_para_2.png
Affichages : 868
Taille : 3,3 Ko

    Pour cela, j'exécute une requête SQL pour qu'il me sélectionne les bonnes gammes. Avec mon code actuel, lorsque je sélectionne TXT821, il m'affiche uniquement la première valeur dans la liste gamme.


    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
    Private Sub liste_wp_Click()
     
     
    Dim sSql As String
     
     
        If liste_wp.Value = "TXT821" Then
     
            sSql = "SELECT SUIVI.[Référence] FROM SUIVI GROUP BY SUIVI.[Référence] HAVING (((SUIVI.[Référence]) Like 'TXT821*'))"
     
            liste_gamme2.Value = CurrentDb.OpenRecordset(sSql).Fields(0).Value
     
     
     
     
     
      '  ElseIf liste_wp.Value = "TXT852" Then
        '
        '
        '
        '
     
     
     
      '  ElseIf liste_wp.Value = "TXT892" Then
        '
        '
        '
        '
        '
     
     
        End If
     
     
    End Sub



    Et en essayant avec le code ci-dessous, j'obtient une erreur : "Ce n'est pas une valeur correcte pour la propriété OrigineSource ou une erreur de compilation s'est produite dans la fonction"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.liste_gamme2.RowSource = "SELECT SUIVI.[Référence]  FROM SUIVI GROUP BY SUIVI.[Référence] HAVING (((SUIVI.[Référence]) Like 'TXT821*'))"

    Merci d'avance

  10. #10
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2013
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 282
    Points : 1 831
    Points
    1 831
    Billets dans le blog
    1
    Par défaut
    Ta Liste gamme prend ses données où? Essaies de nous donner des bonnes informations pour qu'on puisse mieux t'aider.
    Nous voulons les tables qui entre en jeu et leurs champ sur chaque liste déroulante.
    Le monde évolue et nous avec. La technologie change les idées de ceux qui s'intéressent et pensent qu'il est nécessaire de changer.
    Oh là!! Que c'est bien de trouver la solution à un problème

    Pensons à améliorer nos connaissances en toute humilité car on apprend tous tous les jours !!!

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    La liste déroulante Gamme est-elle bien de type Table/Requête (bon) ou Liste de valeurs (pas bon) ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 40
    Points : 28
    Points
    28
    Par défaut
    Bonjour à tous ,

    J'ai supprimé mes listes et j'ai recommencé. Ca fonctionne parfaitement !

    En essayant de faire fonctionner mes listes j'ai du toucher à une option que je n'aurais pas dû.

    Mes listes fonctionnent grâce au Rowsource :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.liste_gamme2.RowSource = "SELECT SUIVI.[Référence]  FROM SUIVI GROUP BY SUIVI.[Référence] HAVING (((SUIVI.[Référence]) Like 'TXT821*'))"

    Merci à tous pour votre aide !

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir
    pour info, tu peux optimiser en utilisant directement la valeur de ta première ListBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.liste_gamme2.RowSource = "SELECT SUIVI.[Référence] FROM SUIVI GROUP BY SUIVI.[Référence] HAVING (((SUIVI.[Référence]) Like '" & Me.liste_wp.Value & "*'))"
    et si c'est la deuxième colonne de la liste qui contient la valeur : Me.liste_wp.Column(1)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

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

Discussions similaires

  1. Requête SQL et résultat dans une liste déroulante
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/04/2014, 14h02
  2. [AJAX] résultats d'une liste déroulante en fonction d'une autre liste
    Par jonnyboy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/09/2007, 10h27
  3. Problème tout simple : requête et liste déroulante
    Par Ellix dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 05/07/2007, 13h06
  4. Réponses: 1
    Dernier message: 17/06/2007, 10h10
  5. executer une requête par liste déroulante
    Par lolo_bob2 dans le forum Access
    Réponses: 2
    Dernier message: 15/05/2006, 11h35

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