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

VB 6 et antérieur Discussion :

recuperation d'un champ listbox[vb]


Sujet :

VB 6 et antérieur

  1. #1
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut recuperation d'un champ listbox[vb]
    Bonjour,

    Voici le code que je viens de faire il marche mais que sur le premier enregistrement il ne prend pas en compte les autres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim db As Database 
    Dim rs As Recordset  
    Set db = OpenDatabase("g:\facturation\facture.mdb") 
    Set rs = db.OpenRecordset("clients", dbOpenTable)
    Frmfacture.cmdfacrefclt.Text = rs("numclt")
    Frmfacture.cmdfacnomclt.Text = rs("nomclt")
    Frmfacture.cmdfacprenomclt.Text = rs("prenomclt")
    Merci

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Ado: comment récupérer les données depuis une bd? message n°2.
    Employer un ListBox ou un ComboBox, faire une boucle en utilisant ComposantList.Additem.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    salut
    le probleme est que je suis en DAO
    tu peux me corriger le code?

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Citation Envoyé par Titre de la discussion
    recuperation d'un champ listbox[vb]
    Pour répondre exactement au titre,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VarRecup = ListBox.List(ListBox.listIndex)
    Par contre il semble que le titre devrait être Remplir un ListBox avec les champs d'une BD par DAO.
    Que cela soit en ADO ou DAO, les commandes sont les mêmes.

    Récupération des enregistrements (Set rs = db.OpenRecordset)
    Si il y a un/des enregistrements (If rs.Bof = False Then)
    Boucler de 1 à nombre d'enregistrements - 1 (For x = 1 To rs.RecordCount-1)
    Ajouter le/les champs (ListBox.Additem rs.Fields("name"))
    Avancer d'un enregistrement (rs.MoveNext)
    Retourner en debut de boucle (Next x)
    Fermer le recordset (rs.Close)
    Fin de la condition If (End If)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    re bonjour,
    je crois que je me suis fais mal comprendre j'ai un listbox qui est deja alimenter en douclikan sur l'enregistrement desire je voudrai recuperer les champs du listbox pour les mettres dans 3 champs different nom,prenom, numclt
    j'ai toujours un message d'erreur qui est "compil error: syntax error"

    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Frmfacture.cmdfacrefclt.Text = Me.List1.AddItem rs("numclt")

    voici le code modifie
    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 List1_DblClick()
    Dim db As Database
    Dim rs As Recordset
     
    Set db = OpenDatabase("g:\facturation\facture.mdb")
    Set rs = db.OpenRecordset("clients", dbOpenTable)
     
    Frmfacture.Show
    Frmfacture.cmdfacrefclt.Text = Me.List1.AddItem rs("numclt")
    Frmfacture.cmdfacnomclt.Text = Me.List1.AddItem rs("nomclt")
    Frmfacture.cmdfacprenomclt.Text = Me.List1.AddItem rs("prenomclt")
    End Sub

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Je n'utilise pas DAO mais ADO, pour autant il me semble que ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Frmfacture.cmdfacrefclt.Text = Me.List1.AddItem rs.Fields("numclt")
    doit être juste.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Frmfacture.cmdfacrefclt.Text = Me.List1.AddItem rs("numclt")


    AddItem est une méthode, pas une fonction et ne renvoit donc rien ... en plus si c'était une fonction il manquerait quand même des parenthèses ...

    il faudrait revenir au début ... il y as quoi dans ta liste ? comment la remplie tu ?

  8. #8
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    bonsoir,

    j'ai bien vu les reponses que vous m avez fourni mais le probleme est le meme erreur de syntax sur le rs
    j'allimante ma listbox du formulaire facture en cliquant sur le bouton recherche
    et la j'ai ma liste box qui se ouvre
    ce que je veux c'est des que je double clique sur une ligne du listbox les coordonees de ce dernier s'affiche dans le formulaire facture

  9. #9
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut
    Bonsoir
    Lorsque tu charge ta listBox quelle que sois ado ou dao tu dois marquer ton enregistrement comme unique comme dans cet exemple, avec ItenData et NewIndex!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Set rsListeClient = Bd.OpenRecordset("select Nom,Prénom,Code_Clients from Clients  order by Nom")
    While Not rsListeClient.EOF
        lstClients.AddItem rsListeClient![Nom] & Chr(9) & rsListeClient![Prénom]
        lstClients.ItemData(lstClients.NewIndex) = rsListeClient![Code_Clients]'numéro unique !!
        rsListeClient.MoveNext
    Wend
    rsListeClient.Close
    dans l'événement click de ta ListBox... tu récupéres le numéros unique comme ceci , lCodeClient à déclarer en public dans un module, cela te serviras partout et après!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lCodeClient= lstClients.ItemData(lstClients.ListIndex)
    Ensuite lors du double click tu récupéres les données [Code_Clients]ici) unique de ce clients....facture...à toi de voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim strPointerClient As String
    strPointerClient = "select * from Clients Where code=" & CStr(lCodeClient)
    Set rsClients = Bd.OpenRecordset(strPointerClient, dbOpenDynaset)
    Je donnes simplement un chemin à suivre à toi d'adapter
    vb

  10. #10
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    salut

    meme apres ce que tu m'a dit j'ai changer mon code en l'adaptant a ce mon application j'ai la meme a la meme ligne syntax error
    je vous met en pj une partie de mon projet avecv son code d'origine car meme avec l'ancien code ca ne marche pas je vous remerci
    Fichiers attachés Fichiers attachés

  11. #11
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Merci de joindre des archives au format zip, reconnu par TOUS les PC équipés de Windows, à l'inverse du format rar.

  12. #12
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim strPointerClient As String
    strPointerClient = "select * from Clients Where code='" & CStr(lCodeClient) & "'"
    Set rsClients = Bd.OpenRecordset(strPointerClient, dbOpenDynaset)
    Ne vaut il pas les apostrophes puisque c'est un STRING
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  13. #13
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut
    Bonjour,
    Juste remarque ProgElecT , autant pour moi
    vb

  14. #14
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    bonjour
    encore un probleme je pete un cable voici le code corrige
    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
    Private Sub List1_DblClick()
    Dim db As Database
    Dim rs As Recordset
    'Dim strPointerClient As String
    Set db = OpenDatabase("g:\facturation\facture.mdb")
    strPointerClient = "select * from Clients Where numclt='" & CStr(List1) & "'"
     
    Set rs = db.OpenRecordset(strPointerClient, dbOpenDynaset)
     
    'Set rs = db.OpenRecordset("clients", dbOpenTable)
    'Frmfacture.Show
    rs.MoveFirst
    Frmfacture.cmdfacrefclt.Text = rs("numclt")
    'Frmfacture.cmdfacnomclt.Text = ListBox.Additem rs.Fields("2")
    Frmfacture.cmdfacnomclt.Text = rs("nomclt")
    Frmfacture.cmdfacprenomclt.Text = rs("prenomclt")
    End Sub
    le code est le suivant error pas d'enregistrement en cours

  15. #15
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Citation Envoyé par OhMonBato Voir le message
    Merci de joindre des archives au format zip, reconnu par TOUS les PC équipés de Windows, à l'inverse du format rar.
    moi non plus je n'ai pas installé de logiciel qui sait ouvrir/créer des .RAR.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  16. #16
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim strPointerClient As String
    strPointerClient = "select * from Clients Where code='" & CStr(lCodeClient) & "'"
    Set rsClients = Bd.OpenRecordset(strPointerClient, dbOpenDynaset)
    Ne vaut il pas les apostrophes puisque c'est un STRING
    Bonsoir ProgElect
    Je me permet de revenir sur ton dernier post ci dessus, d'accord que celà est un String dans mon exemple, ici lCodeClient moi je remplace la chaine de caractère en convertissant ma variable avec la fonction Cstr...donc "& CStr(lCodeClient) fonctionne , je trouve mon code plus clair! Cela est juste un point de vue.Car si ont met les apostrophes ont vas tout droits à l'erreur de syntaxe !ou alors retirer la fonction Cstr...
    Bien à toi
    vb

  17. #17
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par vb Voir le message
    Bo....Car si ont met les apostrophes ont vas tout droits à l'erreur de syntaxe !ou alors retirer la fonction Cstr...
    Bien à toi
    vb
    ?

    le problème n'est pas les guillemets : " mais les apostrophes : ' que tu as oublié dans ton code ... et le type STRING concerne le champ code de la base de donnée

  18. #18
    vb
    vb est déconnecté
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 83
    Par défaut
    Citation Envoyé par bbil Voir le message
    ?

    le problème n'est pas les guillemets : " mais les apostrophes : ' que tu as oublié dans ton code ... et le type STRING concerne le champ code de la base de donnée
    Bonsoir bbil,
    Et pourtant dans mes requêtes tout fonctionne nickel, je suis peut trop bête ou trop fatigué ce soir pour suivre ton raisonnement hautement appréciable d'un pro, étant autodidacte j'en apprend tout les jours !!
    Merci bbil

  19. #19
    Membre éclairé Avatar de lumbroso
    Inscrit en
    Décembre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2003
    Messages : 239
    Par défaut
    voici le fichier zipper
    merci de l'aide
    Fichiers attachés Fichiers attachés

  20. #20
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Dans Frmfacture ne laisser, sous le bouton cmdrefclt, que ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub cmdrefclt_Click()
    frmlstclt.Show
    End Sub
    Dans frmlstclt ce
    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
    43
    44
    45
    46
    47
    48
    Option Explicit
     
    Dim NumClient() As String
    Private Sub cmdcancel_Click()
    Unload Me
    End Sub
     
    Private Sub Form_Load()
    Dim maBase As Database
        Dim monRecordset As Recordset
     
        Set maBase = OpenDatabase(App.Path & "\facture.mdb")
        Set monRecordset = maBase.OpenRecordset( _
            "SELECT * FROM clients ORDER BY numclt", dbOpenSnapshot)
     
    ReDim NumClient(monRecordset.RecordCount - 1)
        With monRecordset
            .MoveFirst
     
                Do While Not .EOF
                    List1.AddItem !nomclt & vbTab & !prenomclt
                    NumClient(List1.NewIndex) = !numclt
                    .MoveNext
                Loop
     
           monRecordset.Close 'fermeture du recordset
        End With
     
        maBase.Close 'fermeture de la base de données
     
    End Sub
     
    Private Sub List1_DblClick()
    Dim db As Database
    Dim rs As Recordset
    Dim strPointerClient As String
     
    Set db = OpenDatabase(App.Path & "\facture.mdb")
    strPointerClient = "Select nomclt, prenomclt From Clients Where numclt = '" & NumClient(List1.ListIndex) & "'"
    Set rs = db.OpenRecordset(strPointerClient, dbOpenSnapshot)
     
    Frmfacture.cmdfacrefclt.Text = NumClient(List1.ListIndex)
    Frmfacture.cmdfacnomclt.Text = rs("nomclt")
    Frmfacture.cmdfacprenomclt.Text = rs("prenomclt")
    rs.Close
    db.Close
    Unload Me
    End Sub
    Sa fonctionne, pas le temps de commenter les lignes de code, vue l'heure
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Paradox : Recuperer les Bases/Champs
    Par fredraoul dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/09/2006, 16h04
  2. Recuperation Nom des Champs d'une table
    Par Djekill dans le forum Access
    Réponses: 2
    Dernier message: 31/07/2006, 15h47
  3. [debutant] requete en vba et récuperation d'un champ
    Par Greg84 dans le forum Requêtes et SQL.
    Réponses: 18
    Dernier message: 29/07/2006, 00h05
  4. Recuperation d'un champ de type LONG
    Par elflamby dans le forum Langage SQL
    Réponses: 1
    Dernier message: 02/01/2006, 16h06
  5. Problème avec le recuperation d'un champ caché
    Par gregal dans le forum Langage
    Réponses: 2
    Dernier message: 08/12/2005, 13h20

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