Dan zou dit de code moeten zijn:
Code:
Private Sub Checkbox_Click()
If Me.Afgeleverd = True Then Me.Afgeleverd = Date Else Me.Afgeleverd = Null
End Sub
Normaal gesproken kun je eigenlijk geen fouten maken; als je vanuit de eigenschap <Bij klikken> van de checkbox in de regel klikt, krijg je een knop met 3 puntjes. Als je daar dan op klikt, sta je gelijk in de goede procedure. Het is dan eigenlijk onmogelijk om in de
verkeerde procedure terecht te komen. Verder heeft Access IntelliSense, en als je in een procedure een objectnaam typt, gevolgd door een punt (.) krijg je alle eigenschappen en objecten van dat object te zien. Beetje cryptische omschrijving, maar de werking wordt wel duidelijk als je het zelf uitprobeert.
In jouw voorbeeld heb je dus een tekstvak met de naam "Afgeleverd" op je formulier staan. Met
Me. vraag je de objecten op van het
actieve formulier. Dat is dus het hoogste niveau op een formulier. Typ je dan de letters
"af", dan zie je in de lijst alle objecten die met "af" beginnen. Hoe meer letters je typt, hoe korter de lijst wordt. Zodra je het object "Afgeleverd" ziet, kun je dat selecteren met je toetsenbord of muis. In de code staat dan:
Me.Afgeleverd. Zou je weer een punt typen, dan kun je de eigenschappen van het object "Afgeleverd" bekijken. Typ je dan
"va", dan kom je bij "Value" terecht. Die kun je dan ook weer selecteren. Je krijgt dan dus:
Me.Afgeleverd.Value. Omdat Value de standaard eigenschap is van een tekstveld, mag je die eigenschap ook weglaten, en de meeste mensen (ik ook vaak) doen dat dus. Maar de formules
Me.Afgeleverd = Date en
Me.Afgeleverd.Value = Date zijn dus identiek qua effect.