Ongeldig gebruik van Null

Status
Niet open voor verdere reacties.

jverkerk

Terugkerende gebruiker
Lid geworden
12 nov 2009
Berichten
1.716
Office versie
Microsoft 365
Goedemiddag accessvrienden,
Ik krijg dit Ongeldig gebruik van Null terug als ik de datum verwijder is hier misschien iets aan te doen.
Dit is de vbacode.
Code:
Private Sub Keuringsdatum_AfterUpdate()
    Me.Keuringsvervaldatum = DateSerial(Year(Me.Keuringsdatum) + 1, Month(Me.Keuringsdatum) + 1, Day(Me.Keuringsdatum))
End Sub
Bij voorbaat dank.
 
Wat zou je als alternatief willen hebben in het tekstvak? Moet hij leeg zijn? je zult in ieder geval een IF constructie moeten maken, waarbij je controleert of het veld Keuringsdatum leeg is of niet. Indien leeg, dan ook Keuringsvevaldatum=leeg. Anders de datumberekening.
Code:
IF Me.Keuringsdatum="" THEN
     Me.Keuringsvervaldatum=""
ELSE
     Me.Keuringsvervaldatum = DateSerial(Year(Me.Keuringsdatum) + 1, Month(Me.Keuringsdatum) + 1, Day(Me.Keuringsdatum))
END IF

Hou me niet aan de letterlijke code, al zou die wel kunnen werken. Misschien moet je de check namelijk wat scherper maken...
 
Hoy Michel,
Bedankt dat je mij meteen weer helpt, ik begrijp de bedoeling van de code maar om hem scherper te maken zoals jij zegt moet ik toch op de specialisten afgaan omdat ik zelf wel een paar talen spreek E D It en natuurlijk NL maar deze jammer genoeg niet. Ik heb wel gezocht op internet en bezig geweest met Nz maar daar vind je toch niet het juiste antwoord.
Als ik de code zo zet als hieronder komt Ongeldig gebruik van Null toch weer terug dus zal ik nog wel wat verkeerd doen.
O ja, het liefst dan de tekstvakken leeg als dat mogelijk is.

Code:
Private Sub Keuringsdatum_AfterUpdate()
    If Me.Keuringsdatum = "" Then
    Me.Keuringsvervaldatum = ""
Else
     Me.Keuringsvervaldatum = DateSerial(Year(Me.Keuringsdatum) + 1, Month(Me.Keuringsdatum) + 1, Day(Me.Keuringsdatum))
End If
End Sub
 
Laatst bewerkt:
De test kan je doen met isNull()
de code wordt dan :

If IsNull(Me.keuringsdatum) Then
Me.keuringsvervaldatum = Null
Else
Me.keuringsvervaldatum = DateSerial(Year(Me.keuringsdatum) + 1, Month(Me.keuringsdatum) + 1, Day(Me.keuringsdatum))
End If

JanvP
 
Bijna goed... Een tekstveld kun je niet op Null zetten.
Code:
If Nz(Me.Keuringsdatum,"")="" Then
     Me.Keuringsvervaldatum="".
Else
 
Laatst bewerkt:
Michel en Jan,
Jullie kunnen er wat van, rijmt ook nog.
Allebei heel erg bedankt.
Ik heb ze allebei geprobeerd, uiteindelijk is het de code van Michel geworden vanwege die Null, ik heb alleen bij Michel de <Me.Keuringsvervaldatum="".> punt weggehaald. Dat was om mij te testen denk ik.
Nogmaals allebei heel erg bedankt en ik hoop dat ik in de toekomst nog eens een beroep op jullie kan doen.
Michel nog veel succes en tijd toegewenst voor de workshop, ik ben niet zo jong meer maar ik volg het met veel leerplezier.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan