Access VBA: Waarde declareren in formule

Status
Niet open voor verdere reacties.

Buscador

Gebruiker
Lid geworden
26 jan 2019
Berichten
28
Beste forum

Ik heb een formule die werkt maar ik wil de waarde (hier 3) uit een formulier halen.
Echter wil ik de 'NIEUWschooljaar.ID' uit een formulier halen en dit op de plaats van de 3 zetten.
Als ik "rijID" opvraag in een MsgBox (als formulier open staat) dan geeft dit 3 maar hoe krijg ik dit in de formule in de plaats van de 3
Ik heb al getest of ik op een of andere manier de 3 kan vervangen door "rijID" maar dit lukt me op deze manier niet.
Omdat de ID wisselt naargelang het record is een vast getal geen optie.
Weet iemand hoe dit kan? Wat doe ik verkeerd?
Hartelijk dank

Code:
Dim rijID As Integer
rijID = Forms!Service.txtBeschikbaar
MsgBox rijID

DoCmd.RunSQL "Update NIEUWschooljaar SET NIEUWschooljaar.KVbeschikbaar = '1' WHERE (((NIEUWschooljaar.ID)=3))"
 
Ik heb geen idee wat je aan het doen bent. Je zit op een formulier, waarvan je een waarde uitleest (RijID). En vervolgens wil je een waarde in een ander record bewerken op basis van dat nummer. Begrijp ik dat de hele constructie niet werkt, of weet je niet hoe je de variabele er in moet passen?
 
Ik vermoed overigens dit:
Code:
Dim rijID As Long
     rijID = Me.txtBeschikbaar
     CurrentDB.Execute ("Update NIEUWschooljaar SET KVbeschikbaar = 1 WHERE ID= " & RijID, dbFailOnError)
Waarbij je op het formulier Service staat (anders komt RijID uit een ander formulier) en je dus de tabel NieuwSchooljaar update die dan niet onder je formulier hangt.
En Access vragen zet je natuurlijk in het Access forum, niet hier :).
 
Bedankt OctaFish voor je reactie.

Je laatste oplossing geeft een rode tekst maar ik zie niet wat er mis is. Sorry als het wat raar lijkt maar dit uitleggen is niet gemakkelijk.

Jouw code = rode kleur
Code:
 CurrentDB.Execute ("Update NIEUWschooljaar SET KVbeschikbaar = 1 WHERE ID= " & RijID, dbFailOnError)

NIEUWSchooljaar = in tabel
KVbeschikbaar = in tabel
ID = in tabel de juiste ID zoeken met rijID in Form Service (rijID = Forms!Service.txtBeschikbaar)

Dit werkt perfect alleen wil ik de 3 uit form Service ophalen. Hopelijk is dit duidelijker
Code:
DoCmd.RunSQL "Update NIEUWschooljaar SET NIEUWschooljaar.KVbeschikbaar = '1' WHERE (((NIEUWschooljaar.ID)=3))"

Bedankt

OPGELOST:
Heb de formule aangepast en dit werkt wel. Bedankt voor de hulp.
Code:
 CurrentDB.Execute ("Update NIEUWschooljaar SET KVbeschikbaar = 1 WHERE ID= " & RijID)
 
Laatst bewerkt:
Dat krijg je er van als je code uit het hoofd neerpent :). DbFailOnError is desalniettemin een nuttige aanvulling; die voorkomt dat je code vastloopt als de query niet uitgevoerd kan worden. Ik zal de juiste syntax er morgen even bij posten.
 
DbFailOnError ken ik niet alleen de "on error" in een procedure. Misschien nuttig om te weten hoe het werkt.
Toch bedankt voor jouw hulp, ik ben in elk geval goed kunnen slapen. ;)
 
DbFailOnError zorgt ervoor dat de executie van een query niet tot een onderbreking/foutmelding leidt. Daarom gebruik ik altijd CurrentDB.Execute om queries uit te voeren.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan