Probleme requete UPDATE

cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004 - 22 avril 2004 à 09:13
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012 - 22 avril 2004 à 11:37
Bonjour, j'ai un souci cette requete ne veut pas passer mais je ne vois pas ce qui cloche...;

SQL = "UPDATE Pointage SET matin_sortie='" & heure_courante & "' WHERE date_pointage='" & datejour & "' AND numèro_emp='" & Texte0 & "' "

Merci beaucoup a celui qui m'aidera

19 réponses

cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 09:39
C'est quoi ton erreur ?

Les champs matin_sortie, heure_courante, date_pointage sont des chaînes de caractères ?

++

Moustachu
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 09:49
matin_sortie heure_courante sont des heures abrégés au format "hh:mm" et date pointage = date abrégé au format "jj/mm/yyyy"
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 10:17
Ben là dans ta requête, tu mets des ' ', le champ doit être définit en tant que chaine de caractère pour que cela fonctionne. Essaye sans pour voir.

C'est quoi exactement ton message d'erreur ?
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 10:27
L'erreur c'est:

Erreur de syntaxe(operateur absent) dans l'expression '10:29:00'

10:29:00 c'est heure_courante
0

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

Posez votre question
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 10:31
Retire les ' et dit moi si ça change
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 10:32
J'ai retiré les ' avant l'erreur etait l'incompatibilté de type mais maintenant je vois pas ce que c'est !
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 10:37
Je crois savoir c koi l'erreur c pour ma date car ds ma base elle est en jj/mm/yyyy mais vb ou sql les interprete en date us mm/jj/yyyy

Je vais essayer et je te redis
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 10:40
Ca doit venit de ton format d'heure, il ne doit pas bien comprendre les ":". Ta variable heure_courante est de quel type ? Ton champ matin_sortie est de quel type ?

L'erreur que tu as signifie que le moteur SQL ne comprend ta requête.

Le numèro_emp est de quel type aussi ?

Quand je demùande de quel type (essayons d'être bien clair :o) ) je te demande la définition réelle de tes champs/variable.
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 10:42
Non en fait c pas ca
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 10:44
heure_courante et matin_sortie sont de memes types c'est à dire Date/Heure au format heure abrégée "hh:mm"

et numéro_emp est de type texte
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 10:49
Ok,

Donc pour numéro_emp tu laisses les quotes dans ta requêtes (d'ailleurs, l'accent est grave dans ta requete)

Quand tu dis Date/Heure au format heure abrégée "hh:mm", tu l'as déclaré comment exactement ? (ta ligne de déclaration de heure_courante)
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 10:53
numèro je l'ai remplcer c bon

sinon je declare comme ca

Dim heure_courante As Date
heure_courante = Format(Time, "hh:mm")
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 11:02
:-/
J'aime moyen, mais ça ne veut pas dire que ça vienne de là.
Le retour de la fontion format est une chaine de caractère. Tu peux perdre des infos.

Essaye heure_courante = Time et laisse faire la conversion au moteur SQL.
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 11:08
Ben ca me mets la meme erreur erreur de syntaxe(operateur absent)...
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 11:10
La fonction format je l'utilise pour la date et ca fonctionne très bien...Je comprends pas là !!! Je te mets tout mon code si tu veux...peut etre que j'ai fais des erreurs autre part...

Dim datejour As Date
Dim heure_courante As Date
Dim Oconn As New ADODB.Connection
Dim Ocomm As New ADODB.Command
datejour = Date
heure_courante = Time

Dim adors As New ADODB.Recordset
Dim SQL As String
Oconn.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=J:\COMMUN\Maria, Julien\POINTAGE - Formulaires.mdb"
Oconn.Open
Ocomm.ActiveConnection = Oconn SQL "SELECT * FROM Employés WHERE num_emp " & Texte0 & " ;"
Set adors = Oconn.Execute(SQL)
If adors.EOF Then
MsgBox "Ce numéro de pointage ne correspond à aucun employé ! Recommencez..."
Else SQL "SELECT matin_sortie FROM Pointage WHERE numéro_emp '" & Texte0 & "' AND date_pointage = #" & datejour & "# ;"
Set adors = Oconn.Execute(SQL)

If IsNull(adors.Fields(0)) Then SQL "UPDATE Pointage SET matin_sortie " & heure_courante & " WHERE date_pointage = " & datejour & " AND numéro_emp = '" & Texte0 & "' "
Set adors = Oconn.Execute(SQL)
MsgBox "Pointage effectué le " & datejour & " à " & heure_courante & vbCrLf & vbCrLf & " A Bientôt ! "
Else
MsgBox "Vous vous êtes déjà pointé !"

End If
End If
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 11:20
Oui, ça peut effectivement fonctionner avec la fonction Format. Mais c'est VB qui va faire la convertion de Strinf vers Date... à tes risques et périls. Je regarde ton code et je te fais signe.
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 11:23
C'est pas con ton #" & datejour & "#. Mais tu ne l'as pas dans ta requête Update. Essaye de l'ajouter pour l'heure et la date, je continue de regarder
0
cs_Juliendu88 Messages postés 39 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 17 juin 2004
22 avril 2004 à 11:32
Ca y est ca marche merci beaucoup j'ai rajouté les # pour l'heure...Merci pour ta patience..je peux avancer maintenant.
0
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 avril 2004 à 11:37
Tant mieux, je pourrais aller manger la conscience tranquille. :o)

En tous cas, avec tout ce qui est date, VB et SQL, évite le plus possible les conversions implicites.

Bon courage

++

Moustachu
0