fout bericht

Status
Niet open voor verdere reacties.

Sytse1

Gebruiker
Lid geworden
9 aug 2007
Berichten
584
Office versie
miDer
Onderstaand foutbericht krijg ik
foutbericht.jpg

nadat in een msgbox de keuze is gemaakt voor nee.
Vooraf heb ik in twee variabelen het record id en de invulling (getal) van het veld uren opgeslagen.
Hieronder de VBA code waar de fout onstaat.
Code:
ElseIf Antwoord = 7 Then           '7 = nee
' Er moet naar het vorig record gegaan worden en de invulling moet ongedaan worden.
    Dim rstClone As Recordset
    Set rstClone = Forms!F_mj1!S_MJ1.Form.RecordsetClone 'het subform
    With rstClone
        .FindFirst "Id=" & VarIdDD                       'VarIdDD heeft eerder het rec Id gekregen
        Forms!F_mj1!S_MJ1.Form.Uren.SetFocus   'Het veld uren krijgt de focus
        .Edit
         Forms!F_mj1!S_MJ1.Form.Uren = VARuur   'In VARuur zit het oude cijfer
        .Update
        DoCmd.Save
         If Not .NoMatch Then
            Forms!F_mj1!S_MJ1.Form.Bookmark = .Bookmark
        End If
        .Close
    End With
    Set rstClone = Nothing
End If
Exit Function
Wellicht kan iemand mij vertellen waar mijn fout zit?
B.v.d. voor het meedenken.
 
Ik vind de opbouw een beetje raar, en er zitten m.i. wat overbodige acties in. En dan kom ik hier op uit:
Code:
Dim rstClone As Recordset
    
    If Antwoord = 7 Then           '7 = nee
        Set rstClone = Forms!F_mj1!S_MJ1.Form.RecordsetClone 'het subform
        With rstClone
            If Not .NoMatch Then
                Forms!F_mj1!S_MJ1.Form.Bookmark = .Bookmark
                GoTo Hell
            Else
                .FindFirst "Id=" & VarIdDD
                .Edit
                !Uren = VARuur
                .Update
            End If
        End With
    End If

Hell:
    rstClone.Close
 
Bedankt. De fout is inderdaad verdwenen.
Maar het record wordt niet gevonden en de inhoud van het veld wordt niet teruggezet.
If Not .NoMatch Then wordt uitgevoerd.
En wordt er naar de Hell gegaan?
Heb je enig idee wat er nog mis kan zijn?
Code:
Function VulUurOpnieuwIn()
VrecId = Forms!F_mj1!S_MJ1.Form.Id
Beep
Antwoord = MsgBox("Omdat u de inhoud wist, wordt deze datum gewist. " & Chr(13) & "Is dit niet de bedoeling? Vul een getal in." & Chr(13) & "Kies Ja voor wissen en Nee voor terug", 308, "Opgelet")
If Antwoord = 6 Then               '6 = ja
'Laat de actie volgen
 DoCmd.RunCommand acCmdDeleteRecord
Exit Function
ElseIf Antwoord = 7 Then           '7 = nee
' Er moet naar het vorig record gegaan worden en de invulling moet ongedaan worden.
    Dim rstClone As Recordset
    If Antwoord = 7 Then           '7 = nee
        Set rstClone = Forms!F_mj1!S_MJ1.Form.RecordsetClone 'het subform
        With rstClone
            If Not .NoMatch Then
                Forms!F_mj1!S_MJ1.Form.Bookmark = .Bookmark
                GoTo Hell
            Else
                .FindFirst "Id=" & VarIdDD
                .Edit
                !Uren = VARuur
                .Update
                'nu nog het veld Uren de focus geven
                DoCmd.GoToControl "Uren"
            End If
        End With
        End If
        End If
        
Hell:
    rstClone.Close
Exit Function
End Function
Is Rollback een betere optie?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan