If IsNull probleem

Status
Niet open voor verdere reacties.

JeroenMioch

Gebruiker
Lid geworden
1 dec 2007
Berichten
215
Beste mensen,

Ik heb een formulier waar bepaalde velden verplicht ingevuld moeten worden.
Nou gebruik ik de code hiervoor vaker, en dat geeft eigenlijk altijd het verwachtte resultaat, Echter gebruiken we een andere optie op het formulier nu ook steeds vaker en dan krijg ik een onverwacht resultaat welke ik niet kan thuisbrengen, terwijl de code eigenlijk hetzelfde is, alleen het te checken veld is anders (bound en een unbound veld, maar dat lijkt mij niks uitmaken)

Het gaat in dit geval om het unbound veld FilterKenteken wat gevuld moet zijn. Zo niet dan moet de gebruiker hierop geattendeerd moeten worden en mogen de gegevens zeker niet weggeschreven worden.

Code:
Private Sub KNPwielklem_Click()
    On Error GoTo Err_KNPwielklem_Click
    Me.Refresh
    If IsNull([FilterKenteken]) Then
        MsgBox "Kenteken moet ingevuld zijn"
            Exit Sub
                End If
    If IsNull([Keuzelijst met invoervak10]) Then
        MsgBox "Reden van waarschuwen moet ingevuld zijn"
            Exit Sub
                End If
     With CurrentDb.OpenRecordset("SELECT * FROM TBLwaarschuwingen")
        .AddNew
        ![Datum2] = Date
        !Kenteken2 = Me.FilterKenteken
        !reden = Me.[Keuzelijst met invoervak10]
        !PNummer = Me.PNummer
        !Wielklem = True
        .Update
        .Close
    End With

iemand ideen ? want ik snap het echt niet hahahaha

groet : Jeroen
 
Null is niet altijd Null.... Kijk maar eens op deze site wat het verschil is tussen IsNull en Is Null.
Jou probleem kun je heel simpel oplossen. Maak er dit van:

Code:
If Nz([FilterKenteken],0)=0 Then
 
Hoi Michel,

Ik wist dat er een verschil was tussen de diverse manieren om een leeg veld aan te duiden, zoals bijvoorbeeld "". Maar omdat in mijn andere velden dit wel goed gaat dacht ik de juiste code hiervoor te hebben.

Ik zal je link eens gaan bekijken om wat wijzer van te worden.

De code zal ik zo even testen, ik hoop dat het werkt maar jou kennende twijfel ik er niet aan hahaha.

Bedankt en vriendelijke groeten :

Jeroen
 
Nou... ik durf het bijna niet te zeggen maar het vak FilterKenteken mag nog steeds leeg zijn.
Ik krijg wel de melding dat de reden van waarschuwen niet leeg mag zijn...
Dus 50 % score, maar das niet genoeg ;)

Ik snap er steeds minder van, het lijkt wel of ie de hele procedure overslaat..
 
Wat me opvalt is dat als ik helemaal geen vergunninghouder op mijn scherm heb, het kenteken wel gechecked word. Maar zodra via personeelsnummer een kentekenhouder op mn form zet dan negeert ie de procedure.

En dit alles ondanks dat het veld Kenteken2 (die gevoed word door Filterkenteken) in de onderliggende tabel TBLwaarschuwingen op vereist staat.

Zucht..
 
Laatst bewerkt:
Kan het misschien te maken hebben met het zoekfilter voor het formulier ?

Private Sub FilterKenteken_AfterUpdate()
Code:
    Me.FilterPNummer = ""
    Me.FilterNaam = ""
    Me.Filtersticker = ""
    Me.FilterKenteken = UCase(Me.FilterKenteken)
    Me.Filter = "Kenteken = '" & Me.FilterKenteken & "'"
    Me.FilterOn = True
    
End Sub
 
Is Filterkenteken toevallig ook de naam van het tabelveld? Je zegt in je eerste post dan het tekstveld een niet-gebonden tekstveld is. Een niet-gebonden Tekstveld heeft eigenlijklijk geen eigenschappen; het is leeg of niet. Dus in wezen moet je ook op Me.FilterKenteken.Value="" kunnen testen. Dus een Null check zou niet nodig hoeven te zijn...

Als je met de Stapmodus door de code loopt, beschouwt hij het tekstveld altijd als zijnde niet leeg?
 
Hoi Michel,

Zo te zien werkt dit wel. Vind het nog steeds opmerkelijk waarom mijn code wel werkte bij een bound tekstvak maar niet bij een unbound tekstvak. Want dat is het enig verschil wat ik tussen de velden zie.

Maargoed het doel heiligt de middelen hahaha
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan