faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 décembre 2009
-
27 août 2008 à 15:35
faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 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.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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>
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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"
faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 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
JPGVB
Messages postés96Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention10 mars 20112 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
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
faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 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.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
faycalche
Messages postés74Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention31 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é
JPGVB
Messages postés96Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention10 mars 20112 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 & "'"