uur en dag in formulier

Status
Niet open voor verdere reacties.

bmichel

Gebruiker
Lid geworden
15 feb 2011
Berichten
14
hallo,

ik probeer een eenvoudig formulier te maken met een veld waarin ik automatisch het uur (vb. 21.55) wil laten invullen. Een ander veld zou automatisch de dagnaam moeten krijgen (vb. woensdag).
De interne functies Hour en WeekDay werken niet.

Iemand een tip voor een beginner?

alvast bedankt
 
Hour zal best werken, maar geeft je allen het getal voor het uur. En da's wel logisch... Als je een datum/tijd veld hebt, en je vult hem met de functie Now() dan hoef je alleen maar de notatie van het veld op Korte Tijdnotatie te zetten om de tijd te zien. Gebruik je de functie Date() dan werkt dat (uiteraard) niet, omdat je dan geen tijddeel opslaat, maar alleen een datum. Voor de naam van de dag doe je hetzelfde, namelijk een format instellen. Voor de weergave van de dagnaam typ je in het veld Notatie ddd of dddd, afhankelijk van of je di, wo etc wilt zien, of dinsdag, woensdag. Weekday geeft overigens het dagnummer van een week. Zondag=1, Maandag=2 etc. Kijk ook eens in de help voor dit soort functies, die worden prima (met voorbeelden) uitgelegd.
 
Hour zal best werken, maar geeft je allen het getal voor het uur. En da's wel logisch... Als je een datum/tijd veld hebt, en je vult hem met de functie Now() dan hoef je alleen maar de notatie van het veld op Korte Tijdnotatie te zetten om de tijd te zien. Gebruik je de functie Date() dan werkt dat (uiteraard) niet, omdat je dan geen tijddeel opslaat, maar alleen een datum. Voor de naam van de dag doe je hetzelfde, namelijk een format instellen. Voor de weergave van de dagnaam typ je in het veld Notatie ddd of dddd, afhankelijk van of je di, wo etc wilt zien, of dinsdag, woensdag. Weekday geeft overigens het dagnummer van een week. Zondag=1, Maandag=2 etc. Kijk ook eens in de help voor dit soort functies, die worden prima (met voorbeelden) uitgelegd.

Ik heb NOW reeds geprobeerd met aanpassing van de veldnotatie maar het probleem is dan dat in de tabellen wel de volledige notatie komt, en dat lijkt mij weer iets moeilijker om nadien query's te ontwikkelen.
Op die manier krijg ik in het formulier wel een uur vermelding maar geen dagnaam.
Als ik de Hour functie gebruik krijg ik enkel de melding FALSE ipv een tijdsaanduiding.
Ook Weekday geeft enkel de melding FALSE.

Ik ben hier al 3 avonden mee zoet :o:o
 
Laatst bewerkt:
Je moet Hour en Weekday ook niet gebruiken, want daar heb je niks aan. Ik heb die tekst er alleen bijgezet om je uit te leggen wat die functies doen. In je tabellen sla je, ook al wil je dat niet, altijd een datum en een tijd op. De tabellen zullen daar niet van in de war geraken. Met Notatie geef je op wat je wilt zien. Hetzelfde geldt voor queries: die nemen de instellingen uit de tabel over. Dus als je in een tabel een tijdnotatie kiest, krijg je die in de query ook netjes als tijd te zien. Maar je slaat nog steeds een datum op.
Ik weet nog steeds niet wat je precies opslaat in je tabel, en hoe je het invult, of laat invullen. En dan met name voor je dagvermelding; als je Now() gebruikt voor je datum/tijdveld, kun je hetzelfde veld gebruiken om de dag te laten zien. Simpel hetzelfde veld twee keer op je formulier zetten, één keer met Korte Tijdnotatie, en één keer met notatie dddd
 
Je moet Hour en Weekday ook niet gebruiken, want daar heb je niks aan. Ik heb die tekst er alleen bijgezet om je uit te leggen wat die functies doen. In je tabellen sla je, ook al wil je dat niet, altijd een datum en een tijd op. De tabellen zullen daar niet van in de war geraken. Met Notatie geef je op wat je wilt zien. Hetzelfde geldt voor queries: die nemen de instellingen uit de tabel over. Dus als je in een tabel een tijdnotatie kiest, krijg je die in de query ook netjes als tijd te zien. Maar je slaat nog steeds een datum op.
Ik weet nog steeds niet wat je precies opslaat in je tabel, en hoe je het invult, of laat invullen. En dan met name voor je dagvermelding; als je Now() gebruikt voor je datum/tijdveld, kun je hetzelfde veld gebruiken om de dag te laten zien. Simpel hetzelfde veld twee keer op je formulier zetten, één keer met Korte Tijdnotatie, en één keer met notatie dddd

Het uur heb ik ondertussen voor elkaar gekregen, maar de dagnaam lukt nog altijd niet. Nochtans doe ik het juist denk ik. Kijk eens op mijn voorbeeld. Dit formulier dient om gegevens in de tabellen in te voegen en zou de eerste 3 velden automatisch moeten invullen. :rolleyes:


dag.jpg
 
Ik begin onderhand het idee te krijgen dat je drie keer hetzelfde op wilt slaan: de datum in datum, die je vast met Now() laat invullen, een Uur die je ook laat invullen met Now() en een dag die ook wordt ingevuld met Now(). Tenzij je verwacht dat deze drie velden verschillende informatie gaan bevatten, is dat een beetje heel erg dubbelop.... Je hebt, kortom, maar één veld nodig dat je vult met =Now(). Voor Uur en dag maak je dan onafhankelijke tekstvelden op he formulier, die je qua Besturingselementbron laat verwijzen naar het datumveld, en waarvan de opmaak dus wordt ingesteld zoals ik heb aangegeven.
Of heb je een goede reden om drie keer hetzelfde op te slaan?
 
Ik begin onderhand het idee te krijgen dat je drie keer hetzelfde op wilt slaan: de datum in datum, die je vast met Now() laat invullen, een Uur die je ook laat invullen met Now() en een dag die ook wordt ingevuld met Now(). Tenzij je verwacht dat deze drie velden verschillende informatie gaan bevatten, is dat een beetje heel erg dubbelop.... Je hebt, kortom, maar één veld nodig dat je vult met =Now(). Voor Uur en dag maak je dan onafhankelijke tekstvelden op he formulier, die je qua Besturingselementbron laat verwijzen naar het datumveld, en waarvan de opmaak dus wordt ingesteld zoals ik heb aangegeven.
Of heb je een goede reden om drie keer hetzelfde op te slaan?

Je hebt uiteraard helemaal gelijk. De reden is dat ik begonnen ben met een tabel aan te maken met die verschillende kolommen en ik dacht toen nog met 3 aparte functies te werken die onafhankelijk van elkaar datum, uur en dagnaam zouden geven.
Ik ga dat nog aanpassen maar ik wil eerst die vervelende dagnaam tevoorschijn toveren. :d:d
 
En dat is niet zo heel lastig.... Al heb ik 't zelf in dit voorbeeld iets netter opgelost ;)
 

Bijlagen

En dat is niet zo heel lastig.... Al heb ik 't zelf in dit voorbeeld iets netter opgelost ;)

ik snap het niet helemaal. Hoe weet het object dat het zijn dagnaam moet gaan halen in de kolom datum? Je hebt dat toch nergens vermeld in de besturingselementbron, standaardwaarde of ergens anders?

:confused:

Ik heb trouwens daarjuist ook gevonden dat ik via "WeekdayName(Weekday(Now();2);0;2)" in standaardwaarde ook de dagnaam van vandaag kan zien. Enig probleem is dan wel dat ik vb. niet de datum van gisteren kan ingeven want dan klopt de dagnaam niet meer. In jouw versie lukt dat wel, daar is een koppeling met het datumveld op één of andere manier gemaakt.
 
Laatst bewerkt:
Da's een kleine truc: het veld [Dag] wordt opgemaakt op twee momenten:
1. als je een record opent (door het formulier te openen, of door naar een volgend record te gaan)
2. als je een nieuwe datum invult

De datum(naam) wordt gecontroleerd en ingevuld m.b.v. VBA gebeurtenissen.

Een oplossing zonder VBA kan uiteraard ook:
1. het tekstvak krijgt dan de formule =[Datum] als Besturingselementbron
2. de opmaak van het tekstvak wordt dan: dddd
 
Da's een kleine truc: het veld [Dag] wordt opgemaakt op twee momenten:
1. als je een record opent (door het formulier te openen, of door naar een volgend record te gaan)
2. als je een nieuwe datum invult

De datum(naam) wordt gecontroleerd en ingevuld m.b.v. VBA gebeurtenissen.

Een oplossing zonder VBA kan uiteraard ook:
1. het tekstvak krijgt dan de formule =[Datum] als Besturingselementbron
2. de opmaak van het tekstvak wordt dan: dddd

aaah, eindelijk gelukt. Ik ben zo vrij geweest om je VBA fragment lichtjes aan te passen en te copiëren en nu werkt het perfect.
Hartelijk dank :D:D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan