Ja/Nee vakje aanvinken, Msgbox warning geven met yes/no

Status
Niet open voor verdere reacties.

kuyt1

Gebruiker
Lid geworden
8 mrt 2012
Berichten
24
Hallo allemaal,

In mijn database is ingesteld, dat wanneer het 'ja/nee' vakje van 'Klaar' is aangevinkt, het record uit het formulier verdwijnt en naar een backup database gaat.
Om te voorkomen dat mensen dit per ongelijk aanklikken (want dan is het record weg) heb ik een MsgBox ingesteld die eerst verschijnt.
Nu wil ik dat op het moment hier 'nee' wordt aangeklikt, dat het vakje niet aangevinkt is (actie ongedaan maken).
En op het moment hier 'ja' wordt aangeklikt dat de actie blijft, dus het vakje aangevinkt blijft (waardoor record zal verdwijnen uit form).

Het probleem bij mijn code is dat ze, bij ja of nee beantwoord op msgbox, het vakje blijft altijd aangevinkt (Hij blijft altijd de actie uitvoeren dus)
Op dit moment heb ik de volgende code:

Code:
Private Sub Klaar_click()
MsgBox "Is het onderderdeel klaar?", vbYesNo + VbQuestion, "Klaar?"
If response = VbNo then [Klaar] = 0 Else
[Klaar] = -1
End sub

Iemand die mij kan helpen?
Bij voorbaat dank
 
Je moet eerst een check doen op de waarde van het ja/nee veld.

Code:
Private Sub Klaar_click()
If Me.Klaar.Value=vbTrue Then
     MsgBox "Is het onderderdeel klaar?", vbYesNo + VbQuestion, "Klaar?"
     If response = VbNo then [Klaar] = 0 
End If
End sub
 
Hij functioneert nog steeds niet goed.
Op het moment dat het vakje aangevinkt wordt komt inderdaad de MsgBox op, echter wanneer ik ja of nee klik, dan blijft het vakje aangevinkt.
Hij blijft bij reactie nee, nog steeds aangevinkt, terwijl dit niet meer zou moeten.. (Hij maakt mijn actie niet ongedaan).

Ik heb de volgende codes ook nog toegepast, maar deze werken ook geen van allen:
Code:
If response = vbNo Then Me.Klaar.Value = vbfalse
If response = vbNo Then Me.Klaar.Value = 0
If response = vbNo Then DoCmd.RunCommand acCmdUndo

Geen een van deze bovenstaande codes werkten... bij nee blijft het vakje nog steeds aangevinkt..

Iemand een oplossing?
 
Ik dacht meer om de vraag te stellen in het voor bijwerken event
Code:
Private Sub Klaar_BeforeUpdate(Cancel As Integer)
If MsgBox("Is het onderderdeel klaar?", vbYesNo + vbQuestion, "Klaar?") <> vbYes Then
Cancel = True
End If
End Sub

Grt. Jan
 
Ik heb trouwens nog een klein probleempje..
Hij voert de acties goed uit, maar wanneer het 'klaar' vakje aanklik en vervolgens op het MsgBox reageer met 'nee' dan staat het vakje 'klaar' inderdaad niet meer aangevinkt, maar het probleem is dan dat ik niks anders meer kan aanklikken, want bij elke klik van mij willekeurig op het scherm, komt de MsgBox weer op en hier moet ik dan per se ja op antwoorden (bij Nee blijft msgbox komen en kan ik verder helemaal niks meer dus)... hoe kan ik dit wegkrijgen??
 
Hoe kan ik me.klaar.undo nou vergeten :o
De nieuwe code :
Code:
Private Sub Klaar_BeforeUpdate(Cancel As Integer)
If Not Me.Klaar Then
  If MsgBox("Het onderdeel was als klaar aangemerkt, wil je dit ongedaan maken? ", vbYesNo + vbQuestion, "Klaar?") <> vbYes Then
  Me.Klaar.Undo
  Cancel = True
  End If
Else
  If MsgBox("Is het onderderdeel klaar?", vbYesNo + vbQuestion, "Klaar?") <> vbYes Then
  Me.Klaar.Undo
  Cancel = True
  End If
End If

End Sub

Grt. Jan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan