Aucune valeur donnée pour un ou plusieurs des paramètres requis
IrisTun
Messages postés37Date d'inscriptionmercredi 6 décembre 2000StatutMembreDernière intervention 7 mars 2013
-
12 févr. 2011 à 10:14
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 2016
-
15 avril 2011 à 15:25
Bonjour,
j'ai une base de données Access 2003 et une application VB Net 2008 et voici mon code:
Dim MyConnexion As OleDbConnection = New oleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & "C:\Ressorts.mdb")
Dim MyConnexion2 As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & "C:\Ressorts.mdb")
Dim Mycommand As OleDbCommand = MyConnexion.CreateCommand()
Dim Mycommand2 As OleDbCommand = MyConnexion2.CreateCommand()
Mycommand.CommandText = "SELECT RESSORTS.* FROM RESSORTS"
MyConnexion.Open()
Dim myReader As OleDbDataReader = Mycommand.ExecuteReader()
Do While myReader.Read()
Res1 = myReader.GetString(1)
QteRes1 = myReader.GetDouble(2) * LongRessort
Res2 = myReader.GetString(3)
QteRes2 = myReader.GetDouble(4) * LongRessort
PoidInf = myReader.GetDouble(5)
PoidSup = myReader.GetDouble(6)
If PoidTabFrot >= PoidInf And PoidTabFrot <= PoidSup Then
Mycommand2.CommandText = "SELECT Qte_Disp FROM Disponibilite_Ressort WHERE Code-Composant LIKE " & Res1
MyConnexion2.Open()
MsgBox(Mycommand2.CommandText)
Dim myReader2 As OleDbDataReader = Mycommand2.ExecuteReader()
Do While myReader2.Read()
Qtedisp = myReader2.GetDouble(0)
If Qtedisp >QteRes1 And Res2 "Null" Then
Disp1 = True
Disp2 = True
End If
Loop
myReader2.Close()
MyConnexion2.Close()
End If
If Disp1 True And Disp2 True Then
Ressort1 = Res1
QteRessort1 = QteRes1
Ressort2 = Res2
QteRessort2 = QteRes2
Exit Do
End If
Le problème c'est que au moment de l'exécution j'obtient une erreur au niveau du lecteur myReader2 (Dim myReader2 As OleDbDataReader = Mycommand2.ExecuteReader()) l'erreur est: Aucune valeur donnée pour un ou plusieurs des paramètres requis. vu que Disponibilite_Ressort est une requête dans la base pas une table, est ce ça le problème ou toute la requête est fosse?
Phalalis
Messages postés83Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention19 février 20121 14 avril 2011 à 16:54
Bonjour,
J'ai le même code d'erreur (-2147217904 (80040e10)) sur une requête exécuté vers Access depuis VB6.
En farfouillant sur MSDN ils disent que l'erreur doit venir d'un nom de colonne non présent. Or mes colonnes dans Access ont le même nom que celle de mon code...
Voici ma requête :
RS.Open ("SELECT Id_Equipement FROM T_EQUIPEMENT WHERE Nom_Equipement = " & T.EQ & ""), Connexion, adOpenKeyset, adLockOptimistic
Or lorsque j'enlève la condition Where la requête s'exécute sans problème. J'ai testé en remplaçant la variable T.Eq par la valeur mais ca ne change rien. J'ai testé le like ...Idem... Je ne comprend pas...
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 12 févr. 2011 à 18:50
Désolé, ma réponse est incomplète.
L'opérateur marche comme un modèle (comme son nom l'indique, il faut donc rajouter un joker indiquant où il est susceptible d'y avoir d'autres caractères, ce qui donne (il faut choisir l'une des 3 écritures ci-dessous):
Mycommand2.CommandText = "SELECT Qte_Disp FROM Disponibilite_Ressort WHERE Code-Composant LIKE '%" & Res1 & "'" pour avoir les concordances avec le contenu de Res1 et d'autres caractères situés seulement AVANT (en d'autres termes le contenu de Res1 sera considéré comme la fin de la concordance.
Mycommand2.CommandText = "SELECT Qte_Disp FROM Disponibilite_Ressort WHERE Code-Composant LIKE '" & Res1 & "%'" pour avoir les concordances avec le contenu de Res1 et d'autres caractères situés seulement APRES (en d'autres termes le contenu de Res1 sera considéré comme le début de la concordance.
Mycommand2.CommandText = "SELECT Qte_Disp FROM Disponibilite_Ressort WHERE Code-Composant LIKE '%" & Res1 & "%'" pour avoir les concordances avec le contenu de Res1 et d'autres caractères situés seulement AVANT et APRES (en d'autres termes le contenu de Res1 sera considéré comme pouvant être précédé OU/ET suivie d'autres caractères.
Phalalis
Messages postés83Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention19 février 20121 15 avril 2011 à 09:23
Merci de ta remarque Calade
En effet en sql (sur un moteur tel que mysql ou SqlServer)l'utilisation du " " ne se fait pas
Maintenant j'ai précisé que cette solution était valable dans mon cas mais pas forcement pour lui...
Par contre il est vrai que j'ai oublié de précisé que ma connexion s'effectue vers une base Access a partir de VB6
Calade
Messages postés1207Date d'inscriptiondimanche 20 avril 2003StatutMembreDernière intervention 4 juin 201610 15 avril 2011 à 15:25
Le problème de quote/double quote est du SQL, donc totalement indépendant du langage de programmation (VB6/VBA/.NET).
De plus à ma connaissance, cela fait partie du tronc commun dit SQL92 auquel tous les langages SQL (MS SQLServer, MySql, Oracle, etc...) doivent se plier même s'ils rajoutent des fonctions propriétaires après.