waarde toekennen aan variabele dmv checkbox

Status
Niet open voor verdere reacties.

Dj NRG

Gebruiker
Lid geworden
22 mrt 2009
Berichten
49
Hey,

ik heb een checkbox waarmee ik kan aanvinken of een klant recht heeft op 6%BTW.
als deze aangevinkt is wil ik 6 toekennen aan btw, is deze niet aangevinkt wil ik 21 toekennen aan btw...

dit om te gebruiken in een query...
kan dit ergens rechtstreeks in men query gezet worden? of moet ik dit ergens apart doen (vb in men formulier waar de checkbox in staat)?

alle hulp is welkom

mvg

Dj NRG
 
Laatst bewerkt:
Heb je de checkbox in de tabel bij de klanten gezet, of sla je het per transactie op? In beide gevallen kun je de waarde zonder meer in een query gebruiken, want je kunt met een IIF een percentage gebruiken in je berekening. Je krijgt dan iets als:

Code:
IIF([chkBTWLaag]=-1;6;21)*[Bedrag}

Je hoeft volgens mij geen andere truukjes uit te halen om ermee te rekenen.

Michel
 
Hey Michel, eerst en vooral al bedankt voor je reactie

ik veronderstel dat ik deze code ergens in een vb venster moet zetten? komt dit "na bijwerken" van de checkbox?
moet ik ook nog ergens variabelen ingeven / benoemen in men vb code?

en ik ken echt heeeel weinig van vb, kan je mss ff een woordje uitleg geven bij wat die IFF code juist doet? (en dan vooral die -1, die 6 en 21)
dan begrijp ik het allemaal mss net iets beter ;)

alvast bedankt

mvg

Dj NRG
 
Voordat ik een correct antwoord kan geven, zou ik meer moeten weten over de inrichting van je db.
Je hebt het over een checkbox, en dan ga ik er gelijk vanuit, dat die op een formulier staat. Dat formulier is waarschijnlijk op een tabel gebaseerd. Dat zou bijvoorbeeld de tabel Klanten kunnen zijn, waarin je per klant aangeeft of hij in het hoge of in het lage BTW tarief valt.
Je kunt echter ook per transactie aangeven of een order in het hoge of lage tarief valt. Die info ontbreekt in jouw vraag. Maakt ook niet zoveel uit voor de berekening.

Normaal gesproken heb je in de tabel die je gebruikt een Ja/Nee veld gemaakt voor de checkbox. Dat hoeft overigens niet, het zou ook een numeriek veld kunnen zijn, maar laten we voor het gemak maar uitgaan van een Ja/Nee veld.
Dat zie je in je tabel terug als een aankruisvakje, en dat wil je logischerwijs ook op je formulier als zodanig terug zien.
Tot zover de tabelinrichting.

Een Ja/Nee veld slaat een getal op; -1 voor Ja, dus aangekruist, en 0 voor Nee. Als je een berekening wilt maken in een query, dan moet je deze waarden dus gebruiken in je berekening. In jouw geval krijg je dan: als de waarde van het veld BTW Ja is (dus -1), dan het lage BTW percentage gebruiken (6%), anders het hoge tarief (21%).
In Access vertaal je dat als:

Code:
IIF([chkBTWLaag]=-1;0,06;0,21)*[Bedrag])

Je hebt hiervoor het commando IIF nodig, en niet, zoals je misschien zou verwachten, IF (de logische vertaling van ALS).
Dus de formule is: ALS chkBTWLaag is WAAR ( -1 als opgeslagen waarde), doe dan: [Bedrag] * 0,06, anders: [Bedrag] * 0,21.

Deze formule kun je gewoon in een query plakken, en heeft dus verder niks met VB te maken. Je kunt hem zelfs in je formulier gebruiken, op een niet-afhankelijk tekstvak. Maar dan zie je de uitkomst alleen, en wordt hij niet opgeslagen.

Dat is waarschijnlijk de volgende vraag...

Michel
 
Laatst bewerkt:
Hey Michel

bedankt voor je antwoord..

men DB is dus inderdaad opgebouwd op de manier waarop je dacht (formulier gebaseerd op tabel, checkbox op form en ja/nee waarde in tabel)

ik ga eens even proberen wat je zegt, en dan laat ik je wel weten of het gelukt is

ook bedankt voor je uitleg ivm die code

mvg

Dj NRG
 
gelukt!

super :)

opslaan hoeft trouwens niet denk ik, ik heb die waarde enkel nodig als ik de query run, dus dit kan hij elke keer wel ff opzoeken

bedankt

mvg

Dj NRG
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan