Command Button werkt niet

Status
Niet open voor verdere reacties.

Tamara27

Gebruiker
Lid geworden
1 mrt 2010
Berichten
224
Beste

Ik heb 3 command buttons op een formulier, eentje om het formulier te sluiten, eentje om alle gegevens te wissen, en eentje om de gegevens op te slaan.
De sluit en wisfunctie werken perfect. De command button voor het opslaan doet moeilijk.

k heb de volgende code gebruikt:

Code:
Private Sub cmdOpslaan_Click()
Dim Invoeg As String

If cmbBehandeling1 = "" And cmbCode = "" Then
MsgBox ("Niets om op te slaan")

Else
If cmbBehandeling1 <> "" And cmbCode = "" Then
MsgBox ("Vul de unieke code in aub")

Else
If cmbCode <> "" And cmbBehandeling1 = "" Then
MsgBox ("Vul de behandeling in aub")

Else
If cmbCode <> "" And cmbBehandeling1 <> "" Then
MsgBox ("Alle gegevens zijn correct ingevuld")
End If
End If
End If
End If

End Sub

Als ik het formulier open en ik klik op de command button doet hij niets.
Als ik eerst op de wisknop geduwd heb, is er geen probleem, geeft hij de msgboxen zoals het hoort... het werkt alleen niet als ik op voorhand geen andere actie gehad heb...

Iemand een idee hoe ik dit oplos?

Groetjes
 
Verbeter me als ik het mis heb, maar access slaat alles automatisch op, en dus is een opslaan knop niet nodig. Zelf heb ik er ook vaak één maar dat is om de gebruiker het idee te geven dat ie wat opslaat, het enige wat het form dan doet is naar het laatste record gaan.

Wat betreft je messagebox meldingen : Het valt me op dat je bij de laatste commando een "=" teken ontbreekt waar die bij de anderen wel staat.

Else
If cmbCode <> "" And cmbBehandeling1 <> "" Then
MsgBox ("Alle gegevens zijn correct ingevuld")

Misschien moet dat zijn

Else
If cmbCode <> "" And cmbBehandeling1 = "" Then
MsgBox ("Alle gegevens zijn correct ingevuld")

Groet : Jeroen
 
Laatst bewerkt:
Het is-teken is wel goed, dus daar hoef je niet naar te kijken. De code kan op zich wat netter:

Code:
If Nz(cmbBehandeling1, "") = "" And Nz(cmbCode, "") = "" Then
    MsgBox ("Niets om op te slaan")
ElseIf Nz(cmbBehandeling1, "") <> "" And Nz(cmbCode, "") = "" Then
    MsgBox ("Vul de unieke code in aub")
ElseIf Nz(cmbBehandeling1, "") = "" And Nz(cmbCode, "") <> "" Then
    MsgBox ("Vul de behandeling in aub")
ElseIf Nz(cmbBehandeling1, "") <> "" And Nz(cmbCode, "") <> "" Then
    MsgBox ("Alle gegevens zijn correct ingevuld")
End If
Ik heb er een Nz functie omheen gezet om de check op een leeg tektsveld wat strakker te maken. Zou kunnen helpen.
Probeer anders met een onderbrekingspunt op de eerste regel (met <F9> te plaatsen) te kijken of hij de routine wel netjes doorloopt.
 
Bedankt voor de reacties.
Het is een ongebonden formulier om gegevens in te voeren, vandaar de knop opslaan.. :)
Er komen nog meer codes aanvast, bijv wordt er na het opslaan gevraagd of ze willen overgaan naar het volgende formulier.

Een Nz-functie, Octafish, nog nooit van gehoord :)
ik snap de opbouw ervan dus ook niet helemaal... waarvoor staat de ,"" tussen de haakjes achter de combobox bijvoorbeeld? :)

ik ga het in elk geval wel uitproberen :)
 
De Nz functie gebruik je om te testen op velden die Null als waarde hebben. Dat is niet helemaal gelijk aan Leeg ("") Met de functie kies je een vervangende waarde voor het Null-veld. In het voorbeeld is dat een lege string, maar je mag ook een waarde gebruiken, bijvoorbeeld het cijfer 0. Deze twee varianten:

Nz(cmbCode, 0) = 0
Nz(cmbCode, "") = ""

testen dus alletwee hetzelfde. In het eerste voorbeeld vervang je een Null-waarde door het getal Nul, en kijk je of de vergelijking =0 waar is, in het tweede voorbeeld vergelijk je een Nullwaarde met een lege string.

Heb je al met een onderbrekingspunt gecontroleerd of de waarden gecontroleerd worden?
 
ah ok, dan kan ik die Nz functie wat meer toepassen, ziet er idd "mooier" uit :)

Het probleem is blijkbaar hiermee ook verholpe, want hij geeft meteen een msgbox alsk de cmdbutton aanklik :)

2 vliegen in 1 klap, ideaal dus.

ik verwacht je nog wel trg te hore bij mijn volgend probleem? :)

Grtz
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan