Selectievinkje lasten moet negatieve bedragen geven

Status
Niet open voor verdere reacties.

watch1

Gebruiker
Lid geworden
20 okt 2008
Berichten
8
Hallo,
Ik ben bezig met een kasboek programma.
Ik heb hem helemaal draaiende, maar ik heb nog 1 controle punt wat ik erin wil bouwen.

Ik heb een formulier gemaakt met 2 selectievakjes 1 baten en 1 lasten.

Daaronder heb ik 3 vakje Kas, Bank en Giro. (hierin wordt het totaal bedrag ingevuld vanwaar het is af- of bijgeboekt).

Daaronder heb ik 4 vakken 1 bedrag, 1 BTW 0%, 1 BTW 6% en 1 BTW 19%.

Nu wil dat als het selectie vakje lasten wordt aangevinkt alle bedraggen automatisch een negatief bedrag worden.

Wanneer er een nieuw record wordt ingevoerd moet alles weer schoon zijn. (kunnen baten zijn)

Ik ben al een paar dagen bezig in VBA, maar ik kom er met geen mogelijk uit.
Iemand enig idee welke VBA ik moet invoeren?
 
Je moet op het selectievakje [Lasten] een gebeurtenis <Na bijwerken> zetten, die de bedragen negatief maakt. dus:

Code:
If Me.chkLasten.Value = -1 Then
    Me.Bedrag.Value = -Me.Bedrag.Value
Else
    Me.Bedrag.Value = Abs(Me.Bedrag.Value)
End If
En uiteraard ook voor de andere bedragen die je negatief wilt maken. De Else variant heb je nodig om de optie weer terug te zetten naar een positief getal.
 
Laatst bewerkt:
Je moet op het selectievakje [Lasten] een gebeurtenis <Na bijwerken> zetten, die de bedragen negatief maakt. dus:

Code:
If Me.chkLasten.Value = -1 Then
    Me.Bedrag.Value = -Me.Bedrag.Value
Else
    Me.Bedrag.Value = Abs(Me.Bedrag.Value)
End If
En uiteraard ook voor de andere bedragen die je negatief wilt maken. De Else variant heb je nodig om de optie weer terug te zetten naar een positief getal.

Als eerst bedankt voor je Super snelle reactie.

Ik heb nu dit:
Private Sub Lasten_AfterUpdate()
If Me.chkLasten.Value = -1 Then
Me.Kas.Value = -Me.Kas.Value
Else
Me.Kas.Value = Abs(Me.Kas.Value)
End If
End Sub

Hij maakt in het vak Kas de bedragen niet negatief.
(de vakken Giro, Bank, Bedrag, BTW 0%, BTW 6% en BTW 19% moet ik nog doen, maar wil eerst dit werkt hebben)
 
Wat is de opmaak van het tekstvak? Of heb je het ook in de tabel gecheckt?
Ander ding: is het veld Bedrag afhankelijk van een formule? Dan werkt het ook niet, omdat de berekening dan plaatsvind via de formule. In het welk geval je denk ik ook een foutmelding zou moeten krijgen.
Ik heb net mij mij getest, en daar werkt het, zolang ik dus geen veld gebruik dat afhankelijk is van een formule.
Is dat bij jou wel het geval, dan zou je kunnen overwegen om de formule via VBA op het formulier te berekenen, en niet met een query.
 
Ike heb in de vakken geen berekening of formule staan.
Ik denk dat het in de opmaak van het selectievak ligt.
Inde tabel heb ik Baten (gegevenstype Ja/Nee) en Lasten (gegevenstype Ja/Nee).
 
Laatst bewerkt:
Ik heb de formule getest met een extra testvak; kun je ook nog proberen.
Iets als dit:
Code:
Private Sub Lasten_AfterUpdate()

Me.txtKas.Value=Me.Kas.Value
If Me.chkLasten.Value = -1 Then
	Me.txtKas.Value = -Me.txtKas.Value
Else
	Me.txtKas.Value = Abs(Me.txtKas.Value)
End If

End Sub
 
Nou ook dit werkt niet.
Ik heb nog 1 vraag: Die waarde -1 hoe kom je daaraan en moet ik dan ergens invullen.
(ik heb het al ingevuld bij standaardwaarde, maar werkte ook niet).

Als het niet lukt na je antwoord dan geef ik het toch maar op denk ik.
 
Dan moest ik maar een voorbeeldje posten dat werkt, niet? ;)
't Is van een ander Forumprojectje afgehaald, dus het voorbeeld slaat nergens op, maar het gaat om de techniek er achter tenslotte...
D'r zit één formulier in, met dus een checkbox.
 

Bijlagen

  • test.rar
    17,5 KB · Weergaven: 30
Hoi Watch1,

Jouw checkbox heet waarschijnlijk Lasten! En dus niet chkLasten.
Dus eerst procedure aanroepen Lasten_AfterUpdate() en dan controle van veld chkLasten gaat nooit werken, en dit is volgens mij correct! ;)

Probeer dit eens (als jouw checkbox Lasten heet):
Code:
Private Sub Lasten_AfterUpdate()
If [COLOR="Red"]Me.Lasten[/COLOR].Value = -1 Then
Me.Kas.Value = -Me.Kas.Value
Else
Me.Kas.Value = Abs(Me.Kas.Value)
End If
End Sub

-1 is het (numerieke) equivalent van True
0 is overigens False.
Je kunt ook het volgende zeggen:
Code:
If Me.Lasten.Value = True Then

Wat meer info over boolean:
MSDN Boolean
 
Ikeb net even een kleine nieuwe DB gemaakt. Tabel met 6 kolommen:
Transactiedatum, Baten, Lasten, Kas, Bedrag en BTW.

Vervolgens een formulier aangemaakt met de selctievakken Baten en Lasten.

Nu heb ik een aantal records ingevoerd en alleen bij het eerste record wordt het bedrag negatief gezet. Bij de rest van de records werkt de gebeurtenis niet.

Mijn box heette inderdaad Lasten, maar dat had access al aangeven dat dat niet goed was.
 
Kun je het voorbeeld posten? Kijken we daar wel even naar. Het heeft waarschijnlijk te maken met het laden van de gegevens. Je zou, als je mijn voorbeeld hebt nagemaakt, de code die je bij Form_Load kunnen verplaatsen naar <Bij aanwijzen>, dan wordt het tekstvak bij elk ander record ververst. Dat gebeurt nu namelijk niet, nu zet-iet er alleen wat in bij het laden van het formulier.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan