Erreur 3144 UPDATE VBA

Résolu
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai une erreur de syntaxe sur le code suivant:
Dim date_tmp As Date
date_tmp = DateSerial(ANNEE_SELECT, MOIS_SELECT.Column(0), JOUR)
Dim n As Integer
Dim HSUP As Single
Dim HDEP As Single

HSUP = TOTAL_HSUP
HDEP = TOTAL_HDEP

For i = 1 To 15
date_tmp = date_tmp + 1
If Not IsNull(DLookup("[N°]", "REPARTITION_TPS_REELLE", "[ID_SALARIE]= ID_SALARIE.value and [DATE_JOUR] = #" & Format(date_tmp, "mm/dd/yyyy") & "#")) Then
n = DLookup("[N°]", "REPARTITION_TPS_REELLE", "[ID_SALARIE]= ID_SALARIE.value and [DATE_JOUR] =#" & Format(date_tmp, "mm/dd/yyyy") & "#")

Dim db As Database
Set db = CurrentDb()
Dim sql As String

If Not IsNull(DLookup("[HSUP]", "RECUPERATIONS", "[N°JOUR] =" & n)) Then
HSUP = HSUP + DLookup("[HSUP]", "RECUPERATIONS", "[N°JOUR] =" & n)
sql = "UPDATE RECUPERATIONS SET TOTAL_HSUP = " & HSUP & " WHERE N°JOUR = " & n
db.Execute (sql)
End If
End if
Next

Je ne suis pas une experte en sql. J'ai cherché sur plusieurs forums, j'ai affiché mon sql et je n'ai pas l'impression que c'est faux :/
Je vous remercie d'avance pour votre aide.
A voir également:

5 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Manque un point virgule après le n ";"
0
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61
 
Bonjour,

En effet j'ai déjà essayé avec et sans mais toujours la même erreur:
sql = "UPDATE RECUPERATIONS SET TOTAL_HSUP = " & HSUP & " WHERE N°JOUR = " & n & " ;"
db.Execute (sql)
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Sauf erreur de ma part, les variables doivent etre entre apostrophe
sql = "UPDATE RECUPERATIONS SET TOTAL_HSUP = "" & HSUP & "' WHERE N°JOUR = '" & n & "';"
0
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61
 
re,
je passe à une erreur 3464 type de données incompatible dans l'expression du critère. Mes variables sont des décimales.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Le champ que vous voulez mettre a jour est de quel format: entier, decimal ???
0
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61
 
format décimal
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Pour HSUP oui, mais pas n!!
Le separateur de decimale est-il ok??

Apres verif, il ne faut pas d'apostrophes pour les variables numeriques!!!!!!!!!!!!!!!!!
0
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61
 
Qu'entendez vous par séparateur de décimal?

--
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

le separarteur de decimale peut-etre soit une virgule soit un point. Pour votre Access quel est le separateur de decimale ??
0
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61
 
Bonjour, il s'agit d'une virgule.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Ok, il me faudrait quand meme votre fichier car pas possible de voir ce qui cloche!!
0
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61
 
Bonjour,
Il faut que je supprime une partie de mes données qui sont confidentielles avant de vous la transmettre (d'ailleurs comment fait-on?).
Je viens de trouver le problème mais je n'ai pas encore la solution... Quand HSUP n'a pas de chiffre après la virgule je n'ai pas de message d'erreur par contre dès qu'il y a un chiffre ça plante... Pourtant je viens à nouveau de vérifier et TOTAL_HSUP est bien un décimal!
0
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61 > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai résolu mon problème c'est bien une histoire de virgule dans mon sql il faut que ce soit un point et non une virgule. Voici mon code:

If Not IsNull(DLookup("[HSUP]", "RECUPERATIONS", "[N°JOUR] =" & n)) Then
hs = hs + DLookup("[HSUP]", "RECUPERATIONS", "[N°JOUR] =" & n)
DoCmd.RunSQL ("update RECUPERATIONS set TOTAL_HSUP =" & Str(hs) & " Where N°JOUR=" & n & ";")
End If
0

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

Posez votre question
lulu16100 Messages postés 95 Date d'inscription   Statut Membre Dernière intervention   61
 
une virgule

--
0