Probléme de récupération de variable d'une base de données [Résolu]

Signaler
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
14 juin 2008
-
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
14 juin 2008
-
Bonjour,
Voila mon problème : j'ai une ListBox de commande dans laquelle il y a l'ensemble des libélés des produits ajoutés.
Je voudrais récupérer le code des produits à partir de leur libélé en parcourant ma ListBox en vue de réafecter ces codes dans ma table commande.
Mon code me semble correcte, mais Visual Basic n'en veut pas (ligne en rouge sur laquelle est l'erreur)...
Voici mon code :

    'Parcour de Lst_Prod ...
        Dim i As Integer
        If Lst_Prod.ListCount <> 0 Then
            For i = (Lst_Prod.ListCount - 1) To 0 Step -1
                Dim libprod2 As String
                libprod2 = CStr(Lst_Prod.Text)
            ' ...  à la recherche de chaqun des codes produits
                Dim codeprod2 As String
                Set Rs_Produits = New Recordset
                With Rs_Produits
                    .ActiveConnection = Conn
                    .Open "select Code_Prod from PRODUITS where '" + libprod2 + "' = Lib_Prod", , adOpenDynamic, adLockPessimistic
                    codeprod2 = Rs_Produits("Code_Prod")
                End With
            'Affectation du code dans la table emprunt
                Rs_Empr.AddNew
                Rs_Empr("Code_Comm") = Rs_Comm("Code_Comm")
                Rs_Empr("Code_Prod") = codeprod2
                Rs_Empr.Update
            Next i
        End If

Merci pour votre aide

5 réponses

Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
14 juin 2008

Yeah !
En essayant de suivre l'avancée du code depuis le début, je me suis rendu compte (en ajoutant une MsgBox pour tester) que codeprod2 restait nul.
J'ai fait de meme sur libprod 2 pour voir si cela venait bien de la requête, mais cette variable restait nulle aussi...En vérifiant mieux, je me suis rendu compte qu'au début du code, il fallait remplacer libprod2 CStr(Lst_Prod.Text)  par libprod2 Lst_Prod.List(i) et tout marche impec !
Même pas eu besoin d'apporter de modif au reste du code

En tout cas, merci à vous deux de vous être donné la peine d'essayer de m'apporter de l'aide

ElChauve
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Essaye cela défois que :

codeprod2 = Rs_Produits.Fields("Code_Prod")

Puis dans ta requête évite le + et utilise plutôt le : &
A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
... faut prendre son temps !
la requête est fausse, quand champs_variable = chaîne? l'inverse !!!

                With Rs_Produits
                   
.Open "select Code_Prod from PRODUITS where Lib_Prod = '" & libprod2 & "';", Conn, adOpenDynamic, adLockPessimistic
                   codeprod2 = .fields("Code_Prod").value
                End With

çà devrait aller un peu mieux...
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
*par "inverse" j'entendais évidemment champs_fixe = chaîne_variable
Messages postés
7
Date d'inscription
samedi 10 novembre 2007
Statut
Membre
Dernière intervention
14 juin 2008

Ok, merci à vous deux d'avoir tenté de m'aider, mais le résultat reste le même :(
Pourtant, j'ai déjà utilisé une requête similaire à celle-ci, et elle fonctionne parfaitement.
Je ne comprend pas d'où peut venir le problème...