Syntaxe d'une requete SQL sur un Recordset

faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009 - 27 août 2008 à 15:35
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009 - 28 août 2008 à 20:08
Salut à tous,
à l'execution de cette requete , je recois l'erreur suivante:
un objet est requis! qui arrive sur la requete meme.
Set rslin_bn_benif = New ADODB.Recordset
Call rslin_bn_benif.Open(" select * from ligne_bncmmde_bnif where ligne_bncmmde_bnif.numeroBC=" & rsbn_benif("numeroBC") And (ligne_bncmmde_bnif.code_article = " & Combo1.Text & "", cn, 1, 2"))
Je sollicite votre aide pour savoir la cause de l'erreur.
Merci d'avance.

31 réponses

cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
27 août 2008 à 15:49
Salut,

Essaye comme çà déjà :

dim rslin_bn_benif as ADODB.RecordSet
Set rslin_bn_benif = New ADODB.Recordset 

       <strike>Call</strike> rslin_bn_benif.Open(" select * from ligne_bncmmde_bnif where ligne_bncmmde_bnif.numeroBC =" & rsbn_benif("numeroBC") And (ligne_bncmmde_bnif.code_article = " & Combo1.Text & "", cn, 1, 2"))

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
27 août 2008 à 16:16
salut,

reprenons la requête:

" select * from ligne_bncmmde_bnif where ligne_bncmmde_bnif.numeroBC= "
& rsbn_benif("numeroBC") And (ligne_bncmmde_bnif.code_article = "
& Combo1.Text & "", cn, 1, 2"

çà donne en aéré :
" select * from ligne_bncmmde_bnif where ligne_bncmmde_bnif.numeroBC="
 &
rsbn_benif("numeroBC") And (ligne_bncmmde_bnif.code_article = "
 &
Combo1.Text
 &
"", cn, 1, 2"

donc déjà il y a 2 " en trop

ton And au milieu de nulle part est sensé faire quoi? il n'est pas dans ta requête

ensuite cn est déclarée?

enfin CALL se supprime tout seul en VB.NET, tu ne serais pas plutôt en VB6 ?

<li> Vous êtes ici : [infomsg.aspx Thèmes] / [infomsgf_VB-NET-VB-2005_40.aspx VB.NET et VB 2005] / [infomsgt_BASE-DONNEES_235.aspx Base de données] / [infomsgt_SQL_239.aspx SQL] / Syntaxe d'une requete SQL sur un Recordset </li>

rslin_bn_benif.Open "SELECT * FROM
ligne_bncmmde_bnif " & _
"WHERE ligne_bncmmde_bnif.numeroBC = " &  rsbn_benif!numeroBC & "
" & _
"AND
ligne_bncmmde_bnif.code_article = " & Combo1.Text & ";", cn, 1, 2

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 16:31
Salut,
Je suis en VB6 et cn est déja declarée.
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 16:42
Salut PCPT,
j'ai essayé ton code et je recois l'ereur :
type de donnees incompatible dans l'expression du critére!!
0

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

Posez votre question
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 août 2008 à 16:47
j'peux pas inventer tes types ^^
on a pas la base sous les yeux et on ne sait pas ce que tes contrôles contiennent
ni la raison de tes choix d'arguments "1, 2"

rslin_bn_benif.Open "SELECT * FROM ligne_bncmmde_bnif " & _
"WHERE ligne_bncmmde_bnif.numeroBC = '" &  rsbn_benif!numeroBC & "' " & _
"AND ligne_bncmmde_bnif.code_article = '" & Combo1.Text & "';", cn, 1, 2

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 17:15
Voila le code complet que j'ai utilisé, mais malheureusement ca marche encore pas!!
Code:

Dim rsbn_benif As ADODB.Recordset
Dim rslin_bn_benif As ADODB.Recordset
Dim cn As ADODB.Connection
Dim i As Integer

g.FixedRows = 1
g.Rows = 2

Set cn = New ADODB.Connection
cn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Documents and Settings\Administrateur.INTERNET\Bureau\AL OMRANE\Omrane.MDB;"
cn.Open

Set rsbn_benif = New ADODB.Recordset

rsbn_benif.Open "Select * from Bon_commde_benif where date >=#" & DTPicker3.Value & " #AND " & _
"date <=#" & DTPicker2(0).Value & "#", cn, 1, 2
If rsbn_benif.RecordCount = 0 Then
MsgBox "pas de commande saisie entre ces dates"
Exit Sub
Else

rsbn_benif.MoveFirst

While rsbn_benif.EOF = False
Set rslin_bn_benif = New ADODB.Recordset
'Call rslin_bn_benif.Open(" select * from ligne_bncmmde_bnif where ligne_bncmmde_bnif.numeroBC=" & rsbn_benif("numeroBC") And (ligne_bncmmde_bnif.code_article = " & Combo1.Text & "", cn, 1, 2"))
rslin_bn_benif.Open "SELECT * FROM ligne_bncmmde_bnif " & _
"WHERE ligne_bncmmde_bnif.numeroBC = '" & rsbn_benif!numeroBC & "' " & _
"AND ligne_bncmmde_bnif.code_article = '" & Combo1.Text & "';", cn, 1, 2




rslin_bn_benif.MoveFirst

While rslin_bn_benif.EOF = False
With g
i = .Rows - 1
.Rows = .Rows + 1

.TextMatrix(i, 0) = rsbn_benif.Fields(1)
.TextMatrix(i, 1) = rsbn_benif.Fields(0)
.TextMatrix(i, 2) = rsbn_benif.Fields(2)
.TextMatrix(i, 3) = rslin_bn_benif.Fields(1)
.TextMatrix(i, 4) = rslin_bn_benif.Fields(2)
.TextMatrix(i, 5) = rslin_bn_benif.Fields(3)
End With
rslin_bn_benif.MoveNext
Wend
rsbn_benif.MoveNext
Wend
g.Refresh

cn.Close
End If
End Sub
0
JPGVB Messages postés 96 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2011 2
27 août 2008 à 17:20
Salut,
ton erreur de type vient peut-etre du fait que
ligne_bncmmde_bnif.numeroBC et 
ligne_bncmmde_bnif.code_article =
sont de type numérique vu les noms des champs. Si c'est le cas il ne faut pas mettre les apostrophes
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 17:23
ouise sont de type numérique!
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 17:23
mais quelles apostrohpes je doit pas mettre!!
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 août 2008 à 17:30
celles que j'ai ajouté dans le 2e message, donc pile poil mon premier message....
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 17:36
ah desolé j'ai fait une gaffe!!
le numeroBC est "numérique" tandis que le code_article est "Text"
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 août 2008 à 17:45
donc des ' juste au 2e...

désolé mais on va faire 5 pages comme çà ou tu essayes quand même de ton côté?
on va pas s'en sortir sinon
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 17:50
Desolé aussi mais j'ai pas compris ce que tu designe par le 2eme message!!
Merci
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 août 2008 à 18:10
(...) FIELD_NUM = " & VALEUR_NUM & "...
(...) FIELD_TEXT= '" & VALEUR_STR & "'...



et si ta valeur chaîne contient déjà une apostrophe (d'où la question(?) disant que ne connait pas la nature de tes champs ni valeurs) :
(...) FIELD_TEXT= '" & replace(VALEUR_STR, "'", "''") & "'...

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 18:11
j'ai modifié mais cette fois ci je recois le MsgBox "pas de commande saisie entre ces dates" meme si il y en a des factures!! c-à-d il trouve toujours
rsbn_benif.RecordCount = 0 Then et ainsi le reste du code ne s'applique pas.
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
27 août 2008 à 18:16
tu modifies la première requête alors que c'est la 2e qui n'allait pas?

bon je cherche plus à comprendre, cherche un peu de différentes manières, fait différents tests et revient après en détaillant ce que tu as fait. un message toutes les 5 minutes pour dire que tu as mal lu le message d'avant ne fait avancer personne

bon courage
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 18:16
Désolé PCPT j'espére que je derange pas avec mes questions,mais je suis débutant en VB et j'ai jamais utilisé (...) FIELD_NUM = " & VALEUR_NUM & "...
et par conséquent je ne sais pas ou le mettre!!!
Desolé
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 18:22
OK OK Merci mais ce n'est pas la peine de s'énerver je pense!!!
0
JPGVB Messages postés 96 Date d'inscription mardi 29 mars 2005 Statut Membre Dernière intervention 10 mars 2011 2
27 août 2008 à 18:25
pour faire court

le numeroBC est "numérique":
alors tu utilise numeroBC=" & tavaleur

tandis que le code_article est "Text"
alors tu rajoute des apostrophes (je les met en rouge pour les différencier de ") pour encadrer la valeur recherchée:
code_article='" & tontexte & "'"
0
faycalche Messages postés 74 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 31 décembre 2009
27 août 2008 à 18:35
J'ai fait mais ca marche toujours pas.
Message d'erreur:Type de donnees incompatible dans l'expression du critére.
0