"Erreur de synthaxe dans la clause FROM" ???

SenseiKakashi Messages postés 35 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 30 mars 2005 - 23 mars 2005 à 15:27
laurent207 Messages postés 101 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 11 avril 2008 - 31 mai 2005 à 11:25
Bon, j'ai un gros problème, je ne sais pas ce qu'il se passe...

date_actuelle = Format$(Date, "dd/mm/yyyy")
heure_actuelle = Format$(Date, "hh:mm")
' Ici, on échappe les "'" afin de ne pas rencontrer de problème lors de l'insertion dans la BD
v_comm = Replace(comm.Text, "'", "''")
' Début de la transaction
Conn.BeginTrans

If ok = True Then
' Le bilan est donc OK ==> True
bilan = True
If v_comm = "" Then
v_comm = " La tâche a été réalisé avec succés... "
End If
v_comm = Replace(v_comm, "'", "''")
Set rc_tache Conn.Execute("SELECT num_action, jour_action, heure_action, comm_action, num_tache From Action where num_action " & v_num_action & ";")

Conn.Execute ("INSERT INTO HISTORIQUE ( num_action, bilan_action, jour_action, heure_action, jour_rea_action, heure_rea_action, comm_action, num_tache, num_rea ) VALUES ( " & rc_tache.Fields("num_action") & ", " & bilan & ", '" & rc_tache.Fields("jour_action") & "', '" & rc_tache.Fields("heure_action") & "', '" & date_actuelle & "', '" & heure_actuelle & "', " & v_comm & ", " & rc_tache.Fields("num_tache") & ", " & v_id & ");")

' La transaction peut-être confirmée
Conn.Execute ("DELETE FROM Action WHERE num_action = " & v_num_action & ";")
MsgBox " Tâche (OK) validée avec succès ! "

Unload Me
End If

Conn.CommitTrans
Set rc_tache = Nothing

Voilà mon bout de code, et toujours la même erreur...
"Erreur d'execution '-2147217900 (8000410e14)':
Erreur de synthaxe dans la clause FROM"

(sur la requete soulignée)

Ma requête est bonne, ma connexion fonctionne... Impossible de faire tourner... Mes variables sont bien définies... Je suis bloqué...

Please HELP !

C'est en forgeant qu'on devient forgeron...

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 mars 2005 à 18:57
Parce que la syntaxe utilisée n'est pas adaptée à la requète :
rc_tache.Open strLaRequèteSQL, Conn, adOpenStatic, adLockReadOnly
La méthode Conn.Execute n'est utilisable que si le résultat de la requète SQL ne doit renvoyer que le nombre de données modifiées, comme les INSERT ou DELETE.

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
SenseiKakashi Messages postés 35 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 30 mars 2005
23 mars 2005 à 19:07
Le problème c'est que j'ai d'autre If dans la même procédure, qui sont lus selon la reponse d'un group de boutton d'option...
Donc, dans un autre cas, ça bloque sur Conn.Execute(" UPDATE Action Set comm_action UneVariable WHERE num_action UnNuméro ;")

Et ça me met erreur de synthaxe dans UPDATE... meme genre d'erreurs quoi...

Et également avec un DELETE

Conn.Execute (" DELETE FROM Action WHERE num_action = UnNuméro ;")

Alors voilà, meme avec un delete ça me mets cette erreur...

C'est en forgeant qu'on devient forgeron...
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
23 mars 2005 à 22:41
Salut suis pas trés callé en requette mais as tu essayer en entourant ton v_num_action par des '

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
SenseiKakashi Messages postés 35 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 30 mars 2005
24 mars 2005 à 06:37
Déjà tester, ça ne fonctionne pas mieux...

Je trouve vraiment pas là...

C'est en forgeant qu'on devient forgeron...
0

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

Posez votre question
SenseiKakashi Messages postés 35 Date d'inscription mardi 15 février 2005 Statut Membre Dernière intervention 30 mars 2005
24 mars 2005 à 08:34
If ok = True Then
' Le bilan est donc OK ==> True
bilan = True
If v_comm = "" Then
v_comm = " La tâche a été réalisé avec succés... "
End If

Set rc_tache = New ADODB.Recordset
req "SELECT * FROM Action WHERE num_action '" & v_num_action & "';"

rc_tache.Open req, Conn, adOpenStatic, adLockReadOnly

Conn.Execute ("INSERT INTO HISTORIQUE ( num_action, bilan_action, jour_action, heure_action, jour_rea_action, heure_rea_action, comm_action, num_tache, num_rea ) VALUES ( " & rc_tache.Fields("num_action") & ", " & bilan & ", '" & rc_tache.Fields("jour_action") & "', '" & rc_tache.Fields("heure_action") & "', '" & date_actuelle & "', '" & heure_actuelle & "', " & v_comm & ", " & rc_tache.Fields("num_tache") & ", " & v_id & ");")

' La transaction peut-être confirmée
Conn.Execute ("DELETE FROM Action WHERE num_action = " & v_num_action & ";")
MsgBox " Tâche (OK) validée avec succès ! "
Unload Me
End If

Bon, j'ai remplacé, mais ça e donne toujours un message d'erreurs, sur la clause FROM de "req"... Est-ce que ça joue que je sois en ADO pour la methode du rc_tache.Open ???

Et quand je déplace le débogueur sur une autre ligne que rc_tache.Open, par exemple sur la requete suivante, ça me remet encore la même erreur...

Je vous jure, c'est pénible de stagner, et je vois pas pourquoi ça met cette erreur, alors si vous pouviez m'indiquer...

Merci

C'est en forgeant qu'on devient forgeron...
0
laurent207 Messages postés 101 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 11 avril 2008
31 mai 2005 à 11:07
salut à tous,



j'ai le même problème, sauf que moi j'utilise la méthode comme le dis
fack. Ce qui ai vraiment troublant c que g des requêtes syntaxé a peu
prés pareilles et elles, elles passent.


je fait :



Dim rs As New ADODB.Recordset



rs.Open "SELECT * FROM Logiciel_Autre WHERE IDPoste
" & IDPoste & " AND NomLogAutre " & Chr(34) &
ResLogiciel & Chr(34), CnxAccess, adOpenDynamic, adLockReadOnly
'elle passe et marche bien

IdLogiciel = rs.Fields("IdLogAutre").Value

rs.Close



rs.Open "SELECT IdLog FROM Date ", CnxAccess,
adOpenDynamic, adLockOptimistic 'ça plante, alors que la syntaxe est
ultra simple et g plein de requêttes dans mon code comme ça qui marche
(mais sur d'autre table, ma table "Date" est peut être vérolée)



Quant pensez-vous (j'utilise une bd sous Access 97) ?


laurent207
0
laurent207 Messages postés 101 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 11 avril 2008
31 mai 2005 à 11:25
essaye de modifier le nom de ta base



moi, g renomé m'a table Date en DateUtil et ça marche.

laurent207
0
Rejoignez-nous