Avatar billede xzaboo Praktikant
31. maj 2005 - 13:22 Der er 7 kommentarer og
1 løsning

Lønafregning med månedlig start fra d 21. til d 20.

Hej alle sammen..

Jeg har i en formular brug for at få vist alle poster som har en dato der er fra og med d 21. til og med d 20.

Jeg har bare ingen anelse om hvordan jeg laver en sådan forspørgsel.

Den skal nemlig ikke kun passe til denne måned, men skal også passe i næste måned og sådan set altid passe.


Det er fordi at lønafregningen i mit tilfælde gælder fra f.eks. d 21. maj til d 20. juni, og jeg skal derfor automatisk få vist alle poster der befinder sig imellem der.
det den skal vise er derfor de poster der passer til den periode som  passer til aktuelle dato for den dag man bruger formularen.

Samtidigt med kunne jeg også godt tænke mig at få at vide hvordan jeg laver den  sådan at jeg i en anden formular kan få vist alle posterne fra forrige periode.
Avatar billede mugs Novice
31. maj 2005 - 14:18 #1
Du kan i din forespørgsel lave en DatePart på dit datofelt:

DatePart(dd;datofelt)

Jeg kan ikke lige huske den helt korrekte syntaks, men prøv forespørgslens udtryksgenerator. Der findes den.

I dette udtryk kan du så lave et kriterie med Between.
Avatar billede xzaboo Praktikant
31. maj 2005 - 14:20 #2
okay, vil jeg lige prøve, men hvis jeg bruger Between, så skal jeg jo angive en specifik dato skal jeg ikke ?
Avatar billede mugs Novice
31. maj 2005 - 14:20 #3
DatePart("dd", Datofelt)
Avatar billede mugs Novice
31. maj 2005 - 14:22 #4
På den anden side, vil det jo også vise alle poster mellem 21 JUN og 20 Jul, så det kan godt være, at det ikke var så smart alligevel.
Avatar billede xzaboo Praktikant
31. maj 2005 - 17:19 #5
Nå okay, så kommer jeg jo nok ikke så meget videre :P

Men forstår ikke helt hvordan jeg skal bruge den der DatePart hvis det var ? kan ikke få den til at returnere andet end #fejl
Avatar billede mugs Novice
31. maj 2005 - 21:16 #6
DatePaert returnerer, hvor Dato1 er navnet på dit datofelt:

Måned: Udtryk4: DatePart("m";[Dato1];1;0)
Ugenr: Udtryk1: DatePart("ww";[Dato1];1;0)
Dato: Udtryk2: DatePart("d";[Dato1];1;0)
Årstal: Udtryk3: DatePart("yyyy";[Dato1];1;0)
Ugadag: ugedag: NavnPåUgedag(Weekday([Dato1];2)) ( dog ike en DatePart, men nu var de i samme testdb ;o)
Avatar billede xzaboo Praktikant
04. juni 2005 - 17:23 #7
Tja, jeg har da fået DatePart til at virke nu, men ved ikke hvordan jeg skal sætte en rigtig between op for DatePart("d";[Dato]) sådan at den viser alle der er efter d 20. i forrige måned, og mindre end d 21. i aktuel måned. har indtil videre lavet en DatePart som ser ud som følgende:

DatePart("m";[Dato])

Kriteriet til denne er:

BETWEEN (DatePart("m";Now())-1) AND DatePart("m";Now())

Denne del virker nu også fint nok, men jeg ved ikke hvordan jeg skal sætte et BETWEEN kriterie op for DatePart("d";[Dato])
Avatar billede xzaboo Praktikant
04. juni 2005 - 17:39 #8
SRy, har lige lavet en lille ændring i Kriteriet til DatePart("m";[Dato]):

Between IIf((DatePart("d";Now()))>20;(DatePart("m";Now()));(DatePart("m";Now())-1)) And IIf((DatePart("d";Now()))>20;(DatePart("m";Now())+1);(DatePart("m";Now())))
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