werken met Ok/Cancel msgbox

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
535
Beste ontwikkelaars,

Ik probeer met een knop op mijn formulier een query te laten draaien met eerst een MsgBox Ok/Cancel

Bij Ok moet de query draaien, bij Cancel niet.

Ik heb op het net gezocht en heel veel vb gevonden maar krijg het bij mij niet werkende

Code:
Private Sub Command111_Click()
Dim answer As Integer
answer = MsgBox("Are you sure you want to continue?" & _
           vbCrLf & "You cannot undo this action!!!", _
           VbMsgBoxStyle.vbOKCancel)
           
    If answer = vbOK Then DoCmd.OpenQuery "Accesoires Query"
    Else: Exit Sub
    End If
End Sub

Ik krijg steedes een error :

f3.JPG

Wat doe ik fout en wie kan mij helpen.

Thanks

Greetz

Pascal
 
Doe het zo:
Code:
Private Sub Command111_Click()
Dim answer As Integer
answer = MsgBox("Are you sure you want to continue?" & _
           vbCrLf & "You cannot undo this action!!!", _
           VbMsgBoxStyle.vbOKCancel)
           
    If answer = vbOK Then DoCmd.OpenQuery "Accesoires Query"
End Sub
 
Bedankt edmoor,

Het werk perfect.

Ik was in de veronderstelling dat er een criteria moest geformuleerd woorden bij "Cancel"

Top!

Greetz

Pascal
 
Je had een opdracht direct achter Then staan en dan is een End If niet nodig.
Je had het dus ook zo kunnen doen:
Code:
Private Sub Command111_Click()
Dim answer As Integer
answer = MsgBox("Are you sure you want to continue?" & _
           vbCrLf & "You cannot undo this action!!!", _
           VbMsgBoxStyle.vbOKCancel)
           
    If answer = vbOK Then
        DoCmd.OpenQuery "Accesoires Query"
    Else
        Exit Sub
    End If
End Sub

Ook heb je die variabele niet nodig:
Code:
    If MsgBox("Are you sure you want to continue?" & _
           vbCrLf & "You cannot undo this action!!!", _
           VbMsgBoxStyle.vbOKCancel) = vbOK Then

Daarnaast zou je die variabele als Long moeten declareren en niet als Integer.

Om maar even wat extra info te geven ;)
 
Laatst bewerkt:
edmoor,

Bedankt voor de tips

We leren alle dagen bij. Top!

Greetz

Pascal
 
Als het een actiequery is die je uitvoert (en dat zal wel, gezien je msgbox) kun je beter CurrentDB.Execute gebruiken.
 
OctaFish,

Ik kan niet zo goed volgen met uw oplossing.

Zet ik CurrentDB.Execute ergens in de code dan?

Greetz

Pascal
 
Dat gebruik je i.p.v. de Docmd.Openquery.
 
Voordeel van CurrentDB.Execute is dat je parameters mee kan geven. Ik gebruik de opdracht altijd in combinatie met DbFailOnError, waardoor de procedure bij een eventuele fout niet blijft hangen. Ik voer eigenlijk nooit queries uit met Docmd.OpenQuery. Mij veel te foutgevoelig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan