SQL syntax aanpassen

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
Beste allemaal:

In mij code heb ik volgende lijn staan:
UPDATE Betalingen SET BETAALD = True, Nog_te_betalen = 0, Datum_betaling = Date(), Manier = 'O' WHERE (pingping = True);

Ik wil "Date()" veranderd zien.

Ik maakte een formuliertje aan die vraagt de datum ven aan betaling in te geven en deze datum in een veld op de "moeder"-form zet.
Dit veld noemt "betaaldatum" en komt van de form "Betalingen"

Dus, hoe moet ik de bovenstaande SQL syntax veranderen zodat Date() vervangen wordt door een vooraf ingegeven, en in het veld "betaalddatum" weggeschreven datum
Ik kom er niet uit

Bedankt
JP
 
Iets als:
Code:
UPDATE Betalingen SET BETAALD = True, Nog_te_betalen = 0, Datum_betaling = CDate("  & CDbl(Me.Betaaldatum) & "), Manier = 'O' WHERE (pingping = True);
 
Bingo! opgelost....
man, jij bent goud waard............
dikke merci
JP
 
Daar zat ik op te wachten want je had 'm nog niet op <Opgelost> gezet :).
Had je bij moeten vragen: 'en de CDate'). Want dat hoort bij elkaar. Eigenlijk een knulligheidje van Access. VBA werkt met Amerikaanse datums, en jouw formulier geheid met Belgische. En die worden anders opgemaakt; Amerikaanse datums hebben eerst de maan en dan pas de dag. Dus 7-4-2015 kan dan 2 verschillende datums betekenen: 7 april of 4 juli. VBA interpreteert de datum als 4 juli en dat is dus verkeerd. CDBL converteert een waarde (in dit geval de datum uit je formulier) naar een getal. dus de huidige datum wordt vertaald naar 42082. Daar kun je niet zo veel mee, want je wilt de datum opslaan, niet een getal. En CDate converteert dat getal weer terug naar een datum. Dus de feitelijke query luidt voor vandaag:

Code:
UPDATE Betalingen SET BETAALD = True, Nog_te_betalen = 0, Datum_betaling = CDate(42082), Manier = 'O' WHERE (pingping = True);
En dan krijg je de juiste datum. Je ziet op forums (ook hier) heel vaak dat mensen met FORMAT gaan lopen klooien, maar deze methode is veel veiliger.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan