Bedrag uit vorig record transporteren

Status
Niet open voor verdere reacties.

jvandervliet

Gebruiker
Lid geworden
23 mrt 2006
Berichten
234
Beste mensen,

In Access heb ik een kasboek waar ik het saldo van de vorige maand (record hoofdformulier) wil meenemen.

In het hoofdformulier heb ik 2 velden: 'Beginsaldo/Transport vorige maand' en 'Saldo'.

Het is de bedoeling dat het veld 'Beginsaldo/Transport vorige maand' het bedrag van 'Saldo' meeneemt naar de nieuwe maand.

Als ik het kasboek voor het eerst gebruik moet ik we bij 'Beginsaldo/Transport vorige maand' het beginsaldo invoeren


Alvast dank!

J. van der Vliet
 
De simpelste manier is om de waarde van het veld [Beginsaldo/Transport vorige maand] (geen handige naam trouwens met al die spaties en deelteken) als DefaultValue in te stellen op het veld [Saldo] op het moment dat je van het laatste record naar het nieuwe record gaat. Deze code werkt daar prima voor
Code:
Private Sub cmdNewRecord_Click()
    If Not Me.Transport = vbNullString Then Me.Saldo.DefaultValue = Me.Transport.Value
    DoCmd.GoToRecord , , acNewRec
End Sub
 
Dank voor je snelle reactie.

Waar moet ik dit neerzetten? Bij Nieuwe record knop of bij eigenschappen formulier?
 
Als je naar het voorbeeld kijkt, zie je dat ik een knop 'cmdNewRecord' heb gemaakt, waar de code aan de gebeurtenis <Bij klikken> hangt. Als jouw knop anders heet, selecteer je alleen de twee regels code. Uiteraard moet je dan ook de objectnamen nog even aanpassen.
 
Klopt, dat dacht ik ook al. Alleen er staat daar een macro om een nieuw record aan te maken.
 
Ja, dat moet je dus omzetten naar Gebeurtenis.
 
Heb geprobeerde de marcro om te zetten naar Gebeurtenis

Er is een probleem opgetreden bij [Ingesloten Macro]. Ongeldige procedure-aanroep of ongeldig argument.
 
Een actie bevat een (ingesloten) macro of een Gebeurtenisprocedure. Meer smaken heb je volgens mij niet. Als de keuzelijst instelt op Gebeurtenisprocedure, ben je de macro kwijt en kun je vervolgens met de knop met 3 puntjes de code maken/plakken.
 
Niet om het een of ander, maar heb je mijn code al bekeken? Die bestaat uit 2 regels...
 
Bekijk bijlage Kasboek.zip

Het lukt niet. Er zit een haper ergens, maar kan het vinden. Wil je het even bekijken waarom hij het vorige racord niet meeneemt?

Ik heb nu geen gegevens in staan. puur om de grootte te beperken.
 
Het veld [Saldo] is nu een berekening; daar kun je dus nooit een standaardwaarde voor instellen want die wordt altijd vervangen door de formule. Een standaardwaarde werkt alleen voor tabelvelden.
 
Door de code om te draaien :). Foutje van mij; ik had de werking precies omgedraaid. De standaardwaarde moet op het Transportveld.
Code:
Private Sub NweMaand_Click()
    If Not Me.Transport = vbNullString Then Me.Transport.DefaultValue = Me.Saldo.Value
    DoCmd.GoToRecord , , acNewRec
End Sub
 
Berekeningen sla je nooit op, dus waarom zou je dat doen?
Maar als antwoord: het veld [Saldo] moet aan het tabelveld zijn gekoppeld, anders sla je het niet op. Een berekening als Besturingselementbron is dus ofwel een berekening, ofwel een tabelveld. Beide kan niet. Wil je een berekening opslaan in een veld, dan moet je de uitkomst van de berekening dus ergens door laten berekening en toewijzen aan het veld. Daarvoor kun je een willekeurig veld dat onderdeel uitmaakt van de berekening pakken, al is een veld dat je invult het meest handig, want dan kun je de berekening triggeren op de AfterUpdate van da veld.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan