Erreur 3144 UPDATE VBA

Résolu/Fermé
lulu16100 Messages postés 95 Date d'inscription mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 - Modifié le 3 oct. 2018 à 20:16
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 12 oct. 2018 à 07:51
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 oct. 2018 à 08:10
Bonjour,

Manque un point virgule après le n ";"
0
lulu16100 Messages postés 95 Date d'inscription mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
Modifié le 4 oct. 2018 à 08:18
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 oct. 2018 à 08:32
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 mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
4 oct. 2018 à 08:42
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 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 oct. 2018 à 11:56
Re,

Le champ que vous voulez mettre a jour est de quel format: entier, decimal ???
0
lulu16100 Messages postés 95 Date d'inscription mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
4 oct. 2018 à 12:38
format décimal
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié le 4 oct. 2018 à 16:01
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 mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
4 oct. 2018 à 17:47
Qu'entendez vous par séparateur de décimal?

--
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 oct. 2018 à 18:12
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 mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
9 oct. 2018 à 18:13
Bonjour, il s'agit d'une virgule.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
10 oct. 2018 à 07:59
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 mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
Modifié le 10 oct. 2018 à 19:18
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 mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
Modifié le 10 oct. 2018 à 19:38
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 mardi 3 décembre 2013 Statut Membre Dernière intervention 13 janvier 2019 61
4 oct. 2018 à 18:25
une virgule

--
0