Probléme de récupération de variable d'une base de données

Résolu
cs_ElChauve Messages postés 7 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 14 juin 2008 - 3 janv. 2008 à 17:58
cs_ElChauve Messages postés 7 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 14 juin 2008 - 5 janv. 2008 à 15:53
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

cs_ElChauve Messages postés 7 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 14 juin 2008
5 janv. 2008 à 15:53
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
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
3 janv. 2008 à 20:58
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

 
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
3 janv. 2008 à 21:10
... 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
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
3 janv. 2008 à 21:12
*par "inverse" j'entendais évidemment champs_fixe = chaîne_variable
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ElChauve Messages postés 7 Date d'inscription samedi 10 novembre 2007 Statut Membre Dernière intervention 14 juin 2008
5 janv. 2008 à 14:55
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...
0
Rejoignez-nous