Berekening gebeurd pas als ik naar nieuw record ga.

Status
Niet open voor verdere reacties.

pommeke

Gebruiker
Lid geworden
17 jul 2007
Berichten
237
Hallo,

Ik heb een database.
Hierin zit een formulier gebaseerd op een query.
Er gebeuren verschillende berekeningen.
Alles loopt perfect.
Alleen op de laatse berekening blijf ik hangen.
Voor de andere berekeningen geef ik een getal in en dan tab, de bereking in gebeurd.
Maar voor de laatste moet ik altijd naar een volgend record gaan om de bewerking te laten gebeuren.
Kan het zijn omdat die als laatste staat in mijn query?
 
Probeer eens bij de gebeurtenis "bij wijzigen" van het teksvak in de vba editor de
onderstaande code.
Code:
me.requery
 
is een oplossing,

maar dan gaat de cursor terug naar het eerste veld
 
Dit zou genoeg moeten zijn:
Code:
Private Sub FixZiek_AfterUpdate()
    Me.Recalc
End Sub
 
Laatst bewerkt:
Nu heb ik een probleem met de velden die moeten verdwijnen.
Het heeft altijd goed gewerkt, en nu wil het ni meer meewerken.
Het is de bedoeling dat er velden verdwijnen en andere tevoorschijn komen als het vinkje onderwijs aan staat.
Nu gebeurd dat pas na dat ik naar het volgende record ga
 
Wat heb je veranderd in de tussentijd?
 
Wat heb je veranderd in de tussentijd?

Ik denk niets meer.
Alleen dat er nu gegevens in staan


Code:
Option Compare Database
Private Sub FixZiek_AfterUpdate()
    Me.Recalc
End Sub
Private Sub Knop92_Click()
On Error GoTo Err_Knop92_Click


    DoCmd.GoToRecord , , acFirst

Exit_Knop92_Click:
    Exit Sub

Err_Knop92_Click:
    MsgBox Err.Description
    Resume Exit_Knop92_Click
    
End Sub
Private Sub Knop93_Click()
On Error GoTo Err_Knop93_Click


    DoCmd.GoToRecord , , acPrevious

Exit_Knop93_Click:
    Exit Sub

Err_Knop93_Click:
    MsgBox Err.Description
    Resume Exit_Knop93_Click
    
End Sub
Private Sub Knop94_Click()
On Error GoTo Err_Knop94_Click


    DoCmd.GoToRecord , , acNext

Exit_Knop94_Click:
    Exit Sub

Err_Knop94_Click:
    MsgBox Err.Description
    Resume Exit_Knop94_Click
    
End Sub
Private Sub Knop95_Click()
On Error GoTo Err_Knop95_Click


    DoCmd.GoToRecord , , acLast

Exit_Knop95_Click:
    Exit Sub

Err_Knop95_Click:
    MsgBox Err.Description
    Resume Exit_Knop95_Click
    
End Sub
Private Sub Knop100_Click()
On Error GoTo Err_Knop100_Click


    If Me.Dirty Then Me.Dirty = False
    DoCmd.Close

Exit_Knop100_Click:
    Exit Sub

Err_Knop100_Click:
    MsgBox Err.Description
    Resume Exit_Knop100_Click
    
End Sub
Private Sub Command101_Click()
On Error GoTo Err_Command101_Click

    If Me.Dirty Then Me.Dirty = False

    Dim sFilter As String, stDocName As String
        stDocName = "Factuur"
        sFilter = "Factuurnr=" & Me.FactuurNR
        DoCmd.OpenReport stDocName, , , , , sFilter
    Exit Sub


Exit_Command101_Click:
    Exit Sub

Err_Command101_Click:
    MsgBox Err.Description
    Resume Exit_Command101_Click
    
End Sub

Private Sub Onderwijs_AfterUpdate()

End Sub

Private Sub Form_Current()
    If Me.Onderwijs = -1 Then
        Me.OndVD.Visible = True: Me.FixVD.Visible = False
        Me.OndHD.Visible = True: Me.FixHD.Visible = False
        Me.Bijschrift110.Visible = True: Me.Label11.Visible = False
        Me.Vak50.Visible = True: Me.Box8.Visible = False
        Me.Bijschrift51.Visible = True: Me.Label9.Visible = False
        Me.TOT_OndVD.Visible = True: Me.TOT_FixVD.Visible = False
        Me.TOT_OndHD.Visible = True: Me.TOT_FixHD.Visible = False
        Me.TOT_Ond.Visible = True: Me.Tot_FIX.Visible = False
        Me.Bijschrift112.Visible = True: Me.Label17.Visible = False
        Me.Bijschrift111.Visible = True: Me.Label15.Visible = False
        Me.Tekst116.Visible = True: Me.Tekst77.Visible = False
        Me.Bijschrift117.Visible = True: Me.Bijschrift79.Visible = False
        Me.VD_Ond.Visible = True: Me.VD.Visible = False
        Me.HD_Ond.Visible = True: Me.HD.Visible = False
    Else
        Me.OndVD.Visible = False: Me.FixVD.Visible = True
        Me.OndHD.Visible = False: Me.FixHD.Visible = True
        Me.Bijschrift110.Visible = False: Me.Label11.Visible = True
        Me.Vak50.Visible = False: Me.Box8.Visible = True
        Me.Bijschrift51.Visible = False: Me.Label9.Visible = True
        Me.TOT_OndVD.Visible = False: Me.TOT_FixVD.Visible = True
        Me.TOT_OndHD.Visible = False: Me.TOT_FixHD.Visible = True
        Me.TOT_Ond.Visible = False: Me.Tot_FIX.Visible = True
        Me.Bijschrift112.Visible = False: Me.Label17.Visible = True
        Me.Bijschrift111.Visible = False: Me.Label15.Visible = True
        Me.Tekst116.Visible = False: Me.Tekst77.Visible = True
        Me.Bijschrift117.Visible = False: Me.Bijschrift79.Visible = True
        Me.VD_Ond.Visible = False: Me.VD.Visible = True
        Me.HD_Ond.Visible = False: Me.HD.Visible = True
    End If
End Sub
Private Sub Knop160_Click()
On Error GoTo Err_Knop160_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "Overzicht Verlof - Saldo"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Knop160_Click:
    Exit Sub

Err_Knop160_Click:
    MsgBox Err.Description
    Resume Exit_Knop160_Click
    
End Sub

Mss terug even verduidelijken.

Het gaat over formulier "Factuur Maken"
Er zijn vooraf kinderen aangemaakt (onderwijs of geen onderwijs)
Bedoeling is als ze een factuur maken en dan een kind kiezen,
dat er bepaalde velden verdwijnen en andere tevoorschijn komen als het vinkje onderwijs is aangevikt. (of omgekeerd)
Nu doed hij het ni meer.
Moet altijd naar een volgende record gaan en dan terug.
 
Laatst bewerkt:
Je probleem is simpel op te lossen, en zelfs verklaarbaar ;)
Om te beginnen: de code die je gebruikt om de objecten zichtbaar te maken of niet, zit alleen onder de gebeurtenis Private Sub Form_Current(). En dus wordt de code alleen uitgevoerd als je door de records bladert. Om met een grote filosoof te spreken: da's logisch! Wil je de code op een andere plek ook gebruiken, dan moet je hem dus apart aanroepen.
Een nette oplossing is om de code te verplaatsen naar een Functie. Alle code knippen en onderin een funtie maken door de cursor naar het eind te verplaatsen en iets te typen als:

Function Scherm()

Vervolgens plak je de geknipte code tussen Function en End Function. Het aanroepen doe je dan als volgt:
Code:
Private Sub Form_Current()
    Call Scherm
End Sub

En de regel Call Scherm gebruik je ook op de gebeurtenis <Na bijwerken> van je keuzelijst. In je voorbeeldje is dat:
Code:
Private Sub Combo32_AfterUpdate()
    Call Scherm
End Sub




Call Scherm
 
Hallo,

Alvast bedankt,
maar dit is een beetje veel ineens voor mij.

Indien het kan,
Kan je dan de code die ik heb gegeven even aanpassen aub?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan