If Cancel Then

  • Onderwerp starter Onderwerp starter scw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

scw

Gebruiker
Lid geworden
5 jun 2009
Berichten
530
Goedendag,

Ik gebruik onderstaande code:

ElseIf Me.Dirty Then
Dim strMsg As String
strMsg = strMsg & "Wilt u de wijzigingen opslaan?"
If MsgBox(strMsg, vbQuestion + vbYesNoCancel) = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close acForm, "frmVoorbeeld"
ElseIf vbNo Then
DoCmd.RunCommand acCmdUndo
DoCmd.Close acForm, "frmVoorbeeld"
ElseIf vbCancel Then 'Wat moet hier staan??????
Exit Sub


Maar wat zet ik nu precies bij vbCancel Then, om gewoon de MsgBox te sluiten en op het huidige formulier te blijven. Dus gewoon echt annuleren. Ik heb al geprobeerd om de hele zin vbCancel Then weg te halen: maar dat geeft ook niet het gewenste resultaat. Access sluit dan alsnog het formulier :confused:

Excuses, dat het geen lastige vraag is, maar ik heb gezocht op het web, maar kon niks er over terugvinden :(

Hartelijk bedankt voor de hulp,
 
Hoi

Waarom gewoon niet volgend :

Code:
ElseIf Me.Dirty Then
Dim strMsg As String
strMsg = strMsg & "Wilt u de wijzigingen opslaan?"
If MsgBox(strMsg, vbYesNo) = vbYes Then
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close acForm, "frmVoorbeeld"
ElseIf vbNo Then
DoCmd.RunCommand acCmdUndo
DoCmd.Close acForm, "frmVoorbeeld"
Exit Sub
 
Bertje denkt in de goede richting, maar zijn voorstel gaat ook niet werken.
Dit hopelijk wel:

Code:
ElseIf Me.Dirty Then
    Dim strMsg As String
    [COLOR="blue"][B]Dim iCheck As Integer[/B][/COLOR]
    strMsg = strMsg & "Wilt u de wijzigingen opslaan?"
    [COLOR="Blue"][B]iCheck = MsgBox(strMsg, vbQuestion + vbYesNoCancel)[/B][/COLOR]
    [COLOR="Blue"][[B]If iCheck = 7 Then[/B][/COLOR]
        DoCmd.RunCommand acCmdSaveRecord
        DoCmd.Close acForm, "frmVoorbeeld"
    [B][COLOR="blue"]ElseIf iCheck = 6 Then[/COLOR][/B]
        DoCmd.RunCommand acCmdUndo
        DoCmd.Close acForm, "frmVoorbeeld"
    End If
End If

In de andere voorbeelden heb je maar één check op de msgbox. (Msgbox... = VBYes)
De regel ElseIf VbNo Then kan nooit werken. Je geeft namelijk niet aan Wat er VBno moet zijn.
Dus, wat ik meestal doe: een variabele declareren waar je de uitkomst van de Msgbox inzet (iCheck) en die testen in de If..Then..Else routine.
 
Bedankt voor jullie reacties!

De oplossing van Bertje123 werkt niet, in m'n probleemomschrijving had ik al genoteerd dat ik dat al heb geprobeerd (dus zonder If Cancel...) Gelukkig werkte de oplossing van Octafish! Hartelijk dank voor de geboden hulp (weer)!

Groetjes
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan