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 :

Recordset et liste déroulante


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Recordset et liste déroulante
    Voila je suis en train de développer une application access et j'ai besoin d'aide


    voila mon pb ,

    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 Modifiable31_BeforeUpdate(Cancel As Integer)
     
        Dim dbb As DAO.Database
        Dim Rec As DAO.Recordset
     
        Dim essai As String
     
        Set dbb = CurrentDb()
        Set Rec = dbb.OpenRecordset("SELECT [numero_lien] FROM [ligne] WHERE [numero_identifiant] ='" & Me.Modifiable31 & "'")
     
        Do Until Rec.EOF
            Rec![numero_lien] = essai 'c'est la que ca marche pas
            Rec.MoveNext
        Loop
            Rec.Close
            dbb.Close
     
    End Sub
    voila je voudrais récupérer la valeur du recordset dans une liste déroulante de mon formulaire

    Merci d'avance
    a +

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

    As-tu plusieurs valeurs possibles dans le champ "Numero_Lien" de ta table en fonction de la sélection dans la liste ?
    Que veux-tu exactement contrôler dans ta boucle ?

    Starec

    PS : Pense à entourer ton code avec les balises.

  3. #3
    Membre régulier Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Points : 106
    Points
    106
    Par défaut
    J'ai peut etre compris de travers mais ...
    De ce que je vois, tu fais une requete qui selectione le numero de lien depuis une table avec comme condition une egalité sur une variable.

    Ensuite tu fais une boucle Tant que tu n'as pas parcouru tous les tuples generé par ta requete tu assignes la variable "essai" au champ numero lien ( de la requete que tu viens de faire).

    Bon je vois pas trop l'interet surtout que dans ton bout de code je ne vois pas apparaitre ta liste deroulante.

    Je connais pas trop la syntaxe de la comboBox en vba mais en pseudo code ca donnerait un truc comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    While Not Rec.EOF Do
    MaComboBox.add = Rec("mon champ qui nourrit ma combo")
    Rec.movenext
    Wend
    ps : mais peut etre que je n'ai rien compris a ce que tu voulais xD

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    non a vrai dire ca m'aide pas trop

    en fait dans mon formulaire
    j'ai un premier champ qui est une liste déroulante que l'utilisateur va renseigner ce champs s'appelle numero d'identifiant.

    ensuite grace au code je recupere la valeur de ce champs et je voudrais dans un deuxieme champs faire apparaitre les numero de lien qui corresponde à ce numero d'identifiant et tous ca dans une liste déroulante

    alors j'ai testé pas mal de truc.

    la requete en elle meme marche bien
    c'est juste que je n'arrive pas à exploiter le résultat
    je voudrais donc voir apparaitre ce résultat dans la liste déroulante du deuxieme champs

    Gespere avoir était clair

    merci
    a+

  5. #5
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 411
    Points : 230
    Points
    230
    Par défaut
    moi j'aurais plutot opter pour utiliser une requète de mise a jour exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'permet de ne pas afficher les message de mise a jour
    docmd.setwarnings false
    docmd.runsql "Update [ligne] set [numero_lien]='essai' WHERE [numero_identifiant] ='" & Me.Modifiable31 & "'"
    docmd.setwarnings true

  6. #6
    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
    Bonjour,

    Pour revenir à la question initiale qui est de remplir une zone de liste avec un reocrdset :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oRst As DAO.Recordset
    Set oRst = CurrentDb.OpenRecordset("SELECT ID FROM MATABLE")
    Set Modifiable0.Recordset = oRst
    Une autre possibilité moins élégante consite à boucler sur tous les enregistrements et d'utiliser la méthode AddItem (Access XP et sup)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With oRst
        While Not .EOF
            Modifiable0.AddItem .Fields(0).Value
            .MoveNext
        Wend
    End With
    Bien entendu, suivant la méthode choisie, il faut définir la propriété OrigineSource de la zone de liste correctement

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    je ne comprend pas ce que tu veux dire par
    "il faut définir la propriété OrigineSource de la zone de liste correctement"

    merci

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    je viens de chercher un peu et la deuxieme solution que tu me proposais marche tres bien
    C'est cool
    Ca marche

    Merci et

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

Discussions similaires

  1. Liste déroulante avec "Recordset" récupérer des données sur access
    Par Khalid89 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/04/2013, 18h17
  2. Gestion de listes déroulantes avec un RecordSet
    Par tremblayfrnk dans le forum ASP
    Réponses: 3
    Dernier message: 23/12/2010, 14h27
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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