Avatar billede bentemil Praktikant
01. januar 2009 - 12:55 Der 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"
Avatar billede mugs Novice
01. januar 2009 - 13:43 #1
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
Avatar billede bentemil Praktikant
01. januar 2009 - 14:29 #2
Jeg har lavet en streng i Valideringsregel
>=#01-01-2009# Or <=#31-12-2009# , men den virker ikke!
Avatar billede bentemil Praktikant
01. januar 2009 - 14:39 #3
Til mugs, hvor skal det oprettes, det er helt ok at skulle rette det igen 2009-12-31
Avatar billede mugs Novice
01. januar 2009 - 14:44 #4
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:

>=#01-01-2009# And <=#31-12-2009#
Avatar billede bentemil Praktikant
01. januar 2009 - 14:50 #5
Har fundet denne,- DateAdd («interval»; «tal»; «dato»)  - men hvordan skal den udfyldes for at få interval mellem 01.01.2009 og 31.01.2009 ??
Avatar billede mugs Novice
01. januar 2009 - 14:59 #6
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?
Avatar billede bentemil Praktikant
01. januar 2009 - 15:23 #7
Til mugs:
Brugte >=#01-01-2009# And <=#31-12-2009# og det virkede, hvordan er det lige jeg for givet dig point??
Avatar billede mugs Novice
01. januar 2009 - 15:44 #8
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.

Tak for point.
Avatar billede kjulius Novice
03. januar 2009 - 13:55 #9
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.
Avatar billede kjulius Novice
03. januar 2009 - 14:02 #10
Hvis du bare ønsker at tillade datoer i det aktuelle år, kan dette bruges:

>= DateSerial(Year(Date());1;1) And <= DateSerial(Year(Date());12;31)
Avatar billede kjulius Novice
03. januar 2009 - 14:13 #11
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...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester