01. januar 2009 - 12:55Der er
10 kommentarer og 1 løsning
Validere dato input mell. f.eks 01.01.2009 & 01.01.2010 "slåfejl"
Jeg har et dato felt som virker ok ”dato for handling” Jeg vil gerne lave et begrænsning i (tror jeg nok) Valideringsregel. Den skal afgrænse så årstallet bliver begrænset til 2009 næste år 2010 osv. Altså for at undgå ”slåfejl” på årstallet! Det er ok hvis jeg skal rette til hver år i "designvisning"
En sådan dynamisk valideringsregel mener jeg ikke du lave på tabelniveau. Du kna lave en valideringsregel der checker om den indtastede dato ligger efter f.eks. 2008-12-31. Men skal du rette den igen 2009-12-31
Du indtaster valideringsregler i dine tabeller. Det er selvfølgelig muligt at lave en programmering i VBA der tager højde for aktuelt år. Hvordan ved jeg ike lige nu, men det må være muligt.
I det øjeblik du bruger operatoren Or vil alle datoer være gyldige, f.eks 2008-12-31 opfylder valideringsreglen >= 01-01-2009 ELLER <=2009-12-31. Hvis begge kriterier skal være opfyldt skal du anvende AND således:
DataAdd er en funktion i SQL der adderer et bestemt antal dage til en i forvejen indtastet dato. Det kan dy ikke bruge som valideringsregel. Et eksempel på DateAdd
Udtryk1: DateAdd("d";365;[dato])
I "d" vælger du om intervallet skal være dage, uger eller f.eks. år. Den lægger 365 til feltet der hedder dato. Men hvis du kunne bruge funktionen, hvad vil du så gøre med skudår?
Du har ikke kunnet give mig point før nu. Tidligere har jeg kun lagt kommentarer som ikke kan honores. Du markerer mit brugernavn og trykker på accepter.
Man kan nu godt bruge DateAdd funktionen i en valideringsregel. Hvis du bruger den sammen med Date() funktionen, som returnerer den aktuelle data, kan du godt lave en dynamisk valideringsregel, som f.eks.:
>= DateAdd("d";-30;Date()) And <= DateAdd("d";30;Date())
som vil tillade dig at indtaste datoer indenfor 30 dage på begge sider af den aktuelle dato, altså 30 dage tilbage i tiden og 30 dage frem i tiden.
Tjekket sker kun under tilføjelser af data (eller hvis selve feltet opdateres, men ikke hvis andre felter i rækken senere skulle blive opdateret). Det er altså ikke sådan, at "gamle" registreringer pludselig bliver ubrugelige, fordi en registreret dato pludselig er uden for det valide dato-scope. Og det er jo meget heldigt, må man sige...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.