Berekenng in onafhankelijk tekstvak op formulier

Status
Niet open voor verdere reacties.

rijnsoever

Gebruiker
Lid geworden
31 mrt 2006
Berichten
19
Ik heb een tabel (tblAbon) met daaraan gekoppeld een formulier (frmAbon). Op dit frm houd ik mijn abonnementen bij. Hierbij zijn 2 velden betrokken: 1. veld Periode, dit is een lijst met keuze waarden: Jaar, half jaar, kwartaal, 2 maanden. Ik kies hier dus 1 van deze waarden.
Het 2e veld is bedrag. Ik vul hier het bedrag in per periode.
Nu wil ik in een 3e veld, een onafhankelijk tekstvak(tekst25) op frmAbon d.m.v.VBA code laten berekenen wat het abonnement per maand kost. Voorbeeld: als in het veld Periode, Kwartaal is gekozen en het 2e veld Bedrag is niet leeg (er is dus een bedrag ingevuld), moet het veld Bedrag door 3 worden gedeeld. Er moet dus telkens gekeken worden wat de periode is waarna het Bedrag respectievelijk moet worden gedeeld door 12, 6, 3 of 2.
Zoiets zou geregeld kunnen worden met een Do Case instructie maar ik heb geen idee hoe ik dit voor elkaar kan krijgen.
Bij welke gebeurtenis op het formulier moet dit gezet worden?
Kan iemand mij hiermee helpen?
 
Bij een onafhankelijk veld zal de berekening in ieder geval moeten gebeuren bij het openen van een recordset. Hiervoor kun je de gebeurtenis "Bij Aanwijzen" (OnCurrent) gebruiken. Ook moet er een herberekening plaats vinden na dat de abbo periode en het bedrag zijn ingevuld/gewijzigd.

Welk soort formulier betreft het (enkelvoudig, doorlopend of gegevensblad)

mvg
Charles
 
Ik heb de oplossing inmddels zelf gevonden. Ter verduidelijking:

ABBP is een keuzelijst met invoervak waar ik kies voor een bepaalde periode ( Jaar; halfjaar; kwartaal; 2 maanden; maand; 4 weken)

ABBPP is een onafhankelijk tekstveld waar ik het bedrag per periode invul.
ABBPM is een onafhankelijk tekstveld waarin het bedrag per maand berekend moet worden.

De Code luidt:

Private Sub ABBPP_AfterUpdate()
On Error GoTo Err_ABBPP_AfterUpdate

If Not IsNull(Me.ABBP) And Not IsNull(Me.ABBPP) Then
Select Case Me.ABBP
Case "Jaar"
Me.ABBPM = Me.ABBPP / 12
Case "Half jaar"
Me.ABBPM = Me.ABBPP / 6
Case "Kwartaal"
Me.ABBPM = Me.ABBPP / 3
Case "2 maanden"
Me.ABBPM = Me.ABBPP / 2
Case "Maand"
Me.ABBPM = Me.ABBPP / 1
Case "4 weken"
Me.ABBPM = Me.ABBPP * 13 / 12

End Select
End If

Exit Sub
Err_ABBPP_AfterUpdate:
MsgBox Err.Description
Exit Sub
End Sub
 
Als je nu het bedrag per periode wijzigt, wordt volgens mij het maandbedrag niet aangepast.

mvg
Charles
 
Het werkt wel. Als je een bedrag deelt door 1 dan levert dit toch hetzelfde bedrag op?

Bedankt voor het meedenken.

gr.
John
 
Sorry je hebt gelijk, maar wat als je de periode wijzigt zonder het bedrag aan te passen?

mvg
Charles
 
Hier had ik niet aan gedacht. Ik denk dat ik dit kan oplossen door de code die nu bij het event After Update van het veld bedrag per maand (ABBPP) staat, ook moet zetten bij veld After Update van het veld Betaling per Periode (ABBP)

Charles, ik heb recentelijk op het forum een vraag gesteld over een Sring opbouw. Ik heb dit werkend gekregen met code. Het lukt mij echter niet om dit als een expressie in het criterium veld van een query te doen. Weet jij wat ik daar moet neerzetten?

b.v.d.
John
 
Charles,

De code: Call ABBPP_After Update werkt prima.

Het andere probleem: zoek criteria in een query via een formulier nog niet. Ik heb vele voorbeelden gezien en uitgeprobeerd.

Het moet lukken met:

Like Forms!myform!myTekst & "*"

echter niet bij mij. Ik heb het vermoeden dat het niet werkt omdat het tekstveld op mijn formulier waar ik naar verwijs, een onafhankelijk tekstveld is en er meer quotes aan te pas komen.

gr.John
 
Mijn database bevat nogal "gevoelige" info. Ik heb daarom de situatie nagebootst in een andere database (Test.mdb). De situatie is echter gelijk.
Ik moet nu telkens een parameter meegeven voordat de gevraagde records worden getoond. Volgens mij moet het ook zonder parameter kunnen.

Het frm waarna ik in de query verwijs is open. Dus dat is ook niet het probleem.

Ik hoor graag van je. Ik wil dit erg graag weten.

gr. John
 

Bijlagen

Je voorbeeld houd niet veel in. Gebruik de klantentabel van de voorbeelddatabase "Noordenwind".

Probeer hiermee eerst eens de situatie na te bouwen van het voorbeeldvideootje.

Kijk maar hoever je daarmee komt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan