Ja/Nee functie

Status
Niet open voor verdere reacties.

quando1954

Gebruiker
Lid geworden
18 jan 2017
Berichten
10
Weet iemand of het mogelijk is om in een ja/nee veld een functie te bouwen dat er in een ander veld genaamd datum automatisch de datum van vandaag komt te staan.
Dus als ik op ja klik dat er dan in het veld datum , de datum van vandaag komt te staan
 
Welkom bij HelpMij, om te beginnen. En ja, dat is niet zo heel lastig. Maar je geeft maar de helft van het vraagstuk, want wat moet er gebeuren als je het vinkje weghaalt?
 
Dat snap ik niet helemaal. Je hebt een datumveld dat in beginsel leeg is, en een selectievakje dat standaard vermoedelijk óók leeg is (niet aangevinkt). Nu wil je de huidige datum in het datumveld hebben als je op het selectievakje klikt, wat ik nog enigszins kan volgen, maar de datum mag niet weg als je het vinkje uit zet? Waarom wil je dan een selectievakje om de datum te vullen? Kun je veel beter een knop maken, want nu is er dus blijkbaar geen enkel verband tussen het selectievakje en de datum. Daarnaast kun je, in mijn ogen, het selectievakje ook gewoon weglaten want met een klikactie in het datumveld kun je de datum óók genereren. Dus noch knop, noch selectievakje zijn nodig.
 
ja/nee

Sorry even verkeerd begrepen.
Het datumveld moet natuurlijk weer verdwijnen als ik het vakje weer op nee zet.
We zijn bezig met een database en daarin willen we eigenlijk allerlei opties in bouwen ook om te leren.
Dus als het kan wel even laten zien hoe dat moet.
 
Ik heb even een voorbeeldje gemaakt met een tabelveld [Datum] en een checkveld CheckDatum, en daar hangt dan deze gebeurtenis (Bij klikken) achter:
Code:
Private Sub CheckDatum_Click()
    If Me.CheckDatum = True Then Me.Datum = Date Else Me.Datum = Null
End Sub
 
ja/nee

Dankjewel voor je snelle antwoord, maar waar plaats ik deze code, sorry maar ik ben nog maar een beginneling en moet dus nog veel leren.
 
Die code komt dus bij je checkbox te staan, bij de gebeurtenis <Bij klikken>. En die vind je weer als je de Eigenschappen van het selectievakje opent, en dan op het tabblad <Gebeurtenissen> klikt. Als jouw checkbox anders heet, moet je de code natuurlijk daar wel op aanpassen. Zelfde geldt voor je datumveld.
 
ja/nee

Dit staat er nu maar het werkt niet

Option Compare Database

Private Sub CheckboxAfgeleverd_Click()
If Me.Afgeleverd = True Then Me.Datum = Date Else Me.Datum = Null
End Sub


Private Sub checkbox_Click()

End Sub

in afgeleverd moet de datum van vandaag komen te staan
 
Ik snap je codevoorbeeld niet helemaal, maar er zit in ieder geval een fout in de bovenste. De tweede code heeft geen actie, dus dat doet sowieso niks.
Code:
Private Sub CheckboxAfgeleverd_Click()
     If Me.CheckboxAfgeleverd = True Then Me.Datum = Date Else Me.Datum = Null
End Sub

Als nieuwe gebruiker van het forum weet je dat uiteraard nog niet, maar het is gebruikelijk (en wenselijk) om code op te maken met de CODE knop (tweede van re3chts; knop #). Dan ziet hij er wat netter uit.
Maar heet jouw checkbox nu "checkbox' of" "CheckboxAfgeleverd"? Want dat maakt natuurlijk wel uit.
 
ja/nee

Oke zal er op letten.
Mijn checkbox heet checkbox
en het veld waar de datum in moet komen heet afgeleverd
 
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.
 
Helaas

Nou heb dit ingevuld, maar er gebeurd niks (er word geen datum ingevuld in het vak Afgeleverd)
 
Dan wordt het tijd voor de db zelf; want veel meer kan ik er nu ook niet van maken. Al zou je niet de eerste zijn die de namen van objecten niet goed interpreteert of kan vinden. Een tekstvak kan best een andere naam hebben als het veld dat je er aan hebt gekoppeld. Controleer dat dus ook nog even. De naam van een object staat in de eigenschappen op het tabblad <Overige>. Eventueel kun je de naam nog aanpassen aan wat je wilt gebruiken, zolang de naam uniek is, mag dat geen probleem zijn.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan