Problème syntaxe requete

vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009 - 15 juin 2007 à 10:07
wassimez Messages postés 25 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 26 février 2008 - 15 juin 2007 à 11:36
Bonjour, je n'arrive vraiment pas à m'y faire à la syntaxe sous vb pour la requete SQL

Pouvez-vous m'aider? merci

rc.Open "INSERT INTO commandes VALUES (" & "'" & lb_num_commande.Caption & "'," & "'" & lb_date.Caption & "'," & "0" & "," & "" & lb_service.ListIndex & "," & "" & lb_quantite.ListIndex & "", cx, adOpenDynamic, adLockOptimistic

7 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
15 juin 2007 à 10:12
Les date doivent être entourées de dièses et être au format américain, les nombres ne sont pas entourés, les requêtes INSERT INTO sont exécutées, et non ouvertes.

Essaye ceci :

cx.Execute "INSERT INTO commandes VALUES (" & lb_num_commande.Caption & ", #" & Format(lb_date.Caption, "mm/dd/yyyy)
& "#, 0, " & lb_service.ListIndex
& ", " & lb_quantite.ListIndex
0
Doc VB Messages postés 16 Date d'inscription vendredi 24 novembre 2000 Statut Membre Dernière intervention 20 juillet 2007
15 juin 2007 à 10:17
Par ailleurs, dans ta requête il manque la parenthèse de fin :
cx.Execute "INSERT INTO commandes VALUES (" &
lb_num_commande.Caption & ", #" & Format(lb_date.Caption,
"mm/dd/yyyy) & "#, 0, " & lb_service.ListIndex & ", " &
lb_quantite.ListIndex& ")"

Pour t'aider, essaye de passer par une variable intermédiaire pour la construction de ta requête :
stRequete = "INSERT INTO commandes VALUES (" &
lb_num_commande.Caption & ", #" & Format(lb_date.Caption,
"mm/dd/yyyy) & "#, 0, " & lb_service.ListIndex & ", " &
lb_quantite.ListIndex& ")"
Ca a l'avantage de te permettre au besoin de visualiser et d'exécuter ta requête  avec un "Debug.Print stRequete"
En passant par une variable, tu peux aussi appliquer sur ta variable des fonctions de reformatage des valeurs (comme pour doubler les guillemets par exemple).
0
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009
15 juin 2007 à 10:57
cx.execute ....

après je dois mettre quoi d'autre, il me dit qu'un objet est requis. Désolé je débute c'est surement une question bête :$
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
15 juin 2007 à 11:08
cx est-elle une connection ADO ouverte et instanciée ?
0

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

Posez votre question
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009
15 juin 2007 à 11:13
j'ai trouvé mon erreur..par contre il me dit nombre d'arguments incorrects..ça doit etre du au numéro automatique de ma table..dois-je le figurer dans ma requete?
0
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009
15 juin 2007 à 11:34
J'ai essayé ma requete sur MYSQL elle est bonne alors je comprend pas pourquoi il me dit que le nombre d'arguments incorrects
0
wassimez Messages postés 25 Date d'inscription mercredi 14 février 2007 Statut Membre Dernière intervention 26 février 2008
15 juin 2007 à 11:36
Bjr

tu ajoute la procedure suivante :


' DEBUT DE PROCEDURE
Public Sub s_Exec_Sql(sqltxt)

    On Error GoTo err_bey

    Set Cn = New ADODB.Connection

    Cn.CursorLocation = adUseClient

    ch = Connection_string

    Cn.Open ch

    Cn.Execute sqltxt

 

     Exit Sub

err_bey:  MsgBox (Err.Description)

Set Cn = Nothing

 Exit Sub

End Sub
'FIN DE PROCEDURE

puis tu fait l'appelle cette procedure

et voici un exemple de requet
Dim txtsql as string
 Date_Sms = DateValue(Date)
 Heure_Sms = TimeValue(Time)
   txtsql = "INSERT INTO Sms_In (Msg, Num_Tel, Date_Sms , Heure_Sms ) VALUS '" & msg & "','" & Gsm & "', '" & Date_Sms & "', '" & Heure_Sms & "'"
    call s_Exec_Sql(txtsql)

WASSIM
0