Avatar billede gpesp Novice
19. maj 2010 - 08:54 Der er 5 kommentarer og
1 løsning

Dato for ultimo sidste år (aller sidste dag i året før)

Hej!

Jeg har en forespørgsel, der skal vise poster med en datoværdi større end ultimo sidste år, altså den aller sidste dag i året før (f.eks. 31-12-2009). Jeg vil løse det ved at indlægge et kriterium på mit datofelt ('Date').

I forvejen bruger jeg i andre forespørgsler et kriterium til at finde værdien for ultimo sidste måned:

DateAdd("d";-Day(DateAdd("m";0;Date()));DateAdd("m";0;Date()))

Jeg har forestillet mig noget lignende for at finde datoen for ultimo sidste år. Er der nogen som kan hjælpe?

Jeg vil ikke have en VBA-løsning.

Venlige hilsener

GPESP
19. maj 2010 - 12:24 #1
gpesp, mit system vil have kommaer hvor du har semikolummer, altsaa DateAdd("d",-Day(DateAdd("m",0,Date())),DateAdd("m",0,Date())).  Det har jeg lavet om for at teste.  Det er muligt at du maa lave det foelgende loesningsforslag om igen til semikolummer.

Jeg erkenner at dit udtryk (rettet til med kommaer) giver 30 april 2010, altsaa ultimo sidste maaned.  Men du goer det meget for besvaerligt.  DateAdd("m", 0, Date()) vil sige at du laegger 0 maaneder til dags dato hvilket igen giver dags dato.  Saa du kan faa ultimo sidste maaned med dette forenklede udtryk:

DateAdd("d", -Day(Date), Date)

Det som udtrykket goer (det ved du sikkert allerede) er at det finder hvilken dag i maaneden det er (19) og traekker det fra dags dato hvilket giver 0 maj 2010 = 30 april 2010.

Hvis vi nu i stedet kunne traekke 19 fra 19 januar 2010 ville vi faa ultimo forige aar.  19 januar 2010 faar vi ved at traekke maaneden (5) fra dags dato og laegge 1 til, altsaa DateAdd("m", -Month(Date) + 1, Date)

Saa ved at laegge det foelgende kriterium paa dit datofelt skulle du faa ultimo forige aar:

DateAdd("d", -Day(Date), DateAdd("m", -Month(Date) + 1, Date))
Avatar billede gpesp Novice
19. maj 2010 - 12:45 #2
Hej Christian,

Tak for dit svar! Jeg lavede en enkelt modifikation, men så kører det også perfekt:

DateAdd("d"; -Day(Date()); DateAdd("m"; -Month(Date()) + 1; Date()))

Jeg har en dansk version af Access, så derfor bruger jeg komma i stedet for semikolon.

Også tak for at du gjorde mig opmærksom på, at jeg kan få ultimo måneden frem på en simplere måde. Du får pointene!
!Venlige hilsener

GPESP
Avatar billede gpesp Novice
19. maj 2010 - 12:46 #3
Og her kommer så points.
19. maj 2010 - 13:40 #4
Nej der kom ingen points.  For at give mig points (og lukke spoergsmaalet) skal du acceptere mit svar ved at putte et flueben i den lille firkant i indlaeg #1 og derefter klikke paa "Accepter svar og afgiv points."
Avatar billede gpesp Novice
19. maj 2010 - 14:25 #5
Tak for instruktionen. Håber at pointene står på kontoen nu.
19. maj 2010 - 14:36 #6
Tak for points.
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