Syntax fout in UPDATE instructie.

Status
Niet open voor verdere reacties.

fmeca

Gebruiker
Lid geworden
7 sep 2009
Berichten
95
Hallo mede pregrammeurs,

Ik heb onderstaande Update instructie voor het aanpassen van waardes in de tabel ROUTEPUNTEN.

De variabele, KmVerschilTotaal, is een decimaal getal en als Double gedeclareerd.
De variabelen uit de tabel ROUTEPUNTEN, (in hoofdletters zijn als nummeriek (Dubbele precisie, 3 decimalen) gedeclareerd,

Toch krijg ik bij onderstaande instructie een syntax fout.
Ik heb de fout al teruggebracht tot de declaratie van 'KmVerschilTotaal'. (in een ander programma werkt de code wel. Daar werk ik met gehele getallen).
Hoe moet ik deze declareren, of anders oplossen?

Code:
DoCmd.RunSQL "UPDATE ROUTEPUNTEN " & vbCrLf & _
                      "SET BEGINKM = BEGINKM + " & KmVerschilTotaal & ", TOTAALKM = TOTAALKM + " & KmVerschilTotaal & vbCrLf & _
                      "WHERE ROUTE_ID = [Forms]![frmRoutegegevens].[Form].[ROUTE_ID] and WP_ID >[Forms]![frmRoutepunt].[Form].[WP_ID];"


BVD
Eric
 
Zonder voorbeeldje? Weinig van te zeggen. Zeker omdat dezelfde query in een andere database wel werkt, zeg je. Je kunt problemen verwachten met komma notatie, is het eerste dat mij te binnen schiet. Waarschijnlijk heb je in je tabel de komma als decimaalscheidingsteken, en VBA gebruikt een punt. And never the twain shall meet...
 
Inderdaad zonder voorbeeldje lastig te beoordelen, maar er moet volgens mij in ieder geval een spatie voor de WHERE staan. Ook de vbCrLf hoort niet in de SQL-string thuis. Ik heb niet getest of dat een foutmelding geeft, maar ik zou ze weghalen.
 
... maar er moet volgens mij in ieder geval een spatie voor de WHERE staan.
Dat kan best zoals het hier staat, mits je de SQL maar correct scheidt met Enters, wat hier gebeurt. Of het netjes is, is een ander verhaal, want waarom zou je dat doen? Je ziet de query verder nergens in terug, dus waarom zou je de query opmaken? Heipalen worden ook zelden in vrolijke kleurtjes geschilderd :D. Zo zou ik het doen:

Code:
DoCmd.RunSQL "UPDATE ROUTEPUNTEN " _
     & "SET BEGINKM = BEGINKM + " & Replace(KmVerschilTotaal, ".", ",") & ", TOTAALKM = TOTAALKM + " & Replace(KmVerschilTotaal, ".", ",") & " "  _
     &"WHERE ROUTE_ID = " & Me.ROUTE_ID & " AND WP_ID > " & Me.WP_ID
 
THX Guys,

Ik was er inmiddels achter gekomen dat het op het komma teken in de 'KmVerschilTotaal' zit.
Dankzij jullie voorbeeld opgelost door dit te vervangen door een punt.

Replace(KmVerschilTotaal, ",", ".")

Superrrrr.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan