Syntaxe d'une requete SQL sur un Recordset

Signaler
Messages postés
74
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
31 décembre 2009
-
Messages postés
74
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
31 décembre 2009
-
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

Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
2
Alors fais un copier coller de ta chaine sql pour voir ce que ca donne.
Messages postés
74
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
31 décembre 2009

Les voila mes deux requetes:

Call 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.MoveFirst
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
.... tu as mis :

.numeroBC = ' & rsbn_benif!numeroBC & ' " & _

au lieu de :

.numeroBC = '" & rsbn_benif!numeroBC & "' " & _

regarde ce que je t'ai indiqué.

ps : je ne me suis pas énervé, c'est fatiguant de répondre et, au final, de ne pas être lu.
donc pourquoi continuer, simplement
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
2
ALors, d'abord tu supprime CALL comme suggéré précédemment,
et pour numeroBC qui est de format numérique tu as laissé les apostrophes ' alors que ça fait une dizaine de post qu'on te dit qu'il ne faut pas les mettre pour des données de type numérique  !!!!!

si tu ne corrige pas au fur et à mesure on va battre le record du nombre de posts du site !
-=(NB, je n'ai pas regardé le reste tant que tu ne corrige pas les pb déjà identifiés)

<strike>Call</strike> 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
    <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)
        
              rslin_bn_benif.MoveFirst
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
sans compter que (3e fois déjà) :
SI C'EST UNE VALEUR NUMéRIQUE, PAS D'APOSTROPHE

.numeroBC = ' & rsbn_benif!numeroBC & ' " & _

devient donc

.numeroBC = " & rsbn_benif!numeroBC & " " & _
<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
47
JPGVB
-> si tu enlèves CALL tu enlèves aussi la parenthèse ;)
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Pî je rajouterai, que, pour cette année 2008 faudrait prendre de bonne façon pour écrire le code lisiblement, exemple :

rsbn_benif!numeroBC
DEVIENDRAIS
rsbn_benif.Fields("numeroBC").Value

OK..ok..je sort

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
96
Date d'inscription
mardi 29 mars 2005
Statut
Membre
Dernière intervention
10 mars 2011
2
Exact PCPT, j'étais focalisé sur le reste et je n'ai pas été asses précis.
mea culpa.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
Explo
-> c'est moi qui ait mis cette syntaxe ^^

était indiqué (et incorrect) :
rsbn_benif("numeroBC")

s'écrit (proprement) :
rsbn_benif.Fields("numeroBC").Value

tout comme (aussi propre) :
rsbn_benif!numeroBC

mieux encore (en cas d'espace) :
rsbn_benif![numeroBC]

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
74
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
31 décembre 2009

Salut,
Maintenant je recois une nouvlle erreur:
BOF ou EOF est egale à true ou l'eregistrement actuel a été suprimé.L'opération demendée necessite un enregistrement actuel.
L'erreur arrive sur rslin_bn_benif.MoveFirst!
Merci
Messages postés
74
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
31 décembre 2009

SVP j'ai besoin de votre aide car mon probléme pércicte encore!!!
Merci et désolé pour le derengement