Avatar billede pharlap Nybegynder
08. november 2010 - 16:53 Der er 11 kommentarer og
1 løsning

Datepart

Hejsa.
Jeg har en access database med nogle angivne datoer.

Jeg skal ud fra disse datoer finde ugenummeret og har sat denne op i en forespørgelse

Uge: Datepart("ww";[dato];2,2)

Ovenstående giver mig ugenummeret 39 for datoen 23-09-2010, hvor ugenummeret iflg outlook kalenderen skulle være 38

Hvad sker der hvis jeg laver følgende på langsigt?
Uge: Datepart("ww";[dato],2,2)-1
Avatar billede anlu Nybegynder
08. november 2010 - 17:05 #1
Ja, hvis du laver den der workaround, så går det garanteret galt i andre år, hvor Access tilfældigvis godt kan finde ud af at regne rigtigt, dvs. hvor ISO-ugenr. er lig det ugenr. Datepart returnerer.

Jeg har i øvrigt lige prøvet DatePart i Access 2007 og der ser den ud til at give den rigtige uge. Hvilken version kører du?
Avatar billede mcb2001 Nybegynder
08. november 2010 - 17:15 #2
du skal kigge på om du får danske eller amerikanske ugenumre.
Avatar billede pharlap Nybegynder
08. november 2010 - 17:21 #3
Hejsa

Jeg kører Acces 2007 (12.006535.5005) SP2 MSO(12.0.6535.5002)

Er det disse du skal bruge?

Jeg prøvede i en frisk database og får samme resultat. Den viser mig at 23-09-2010 er uge 39

:-(
Avatar billede pharlap Nybegynder
08. november 2010 - 17:23 #4
Mcb2001 - Gør jeg ikke det ved at sætte tallen 2,2?

Datepart("ww";[dato];2,2)

2 tal for at førse ugedag er mandag
og sidste 2 tal for at den første uge skal have mindst 4 dage i det nye år?
Avatar billede mcb2001 Nybegynder
08. november 2010 - 17:28 #5
nej.

Danske uge numre tælles som at den første uge på året er den uge der indholder den første torsdag (altså den længste første uge).

Amerikanske uger er at den uge der indeholder dage fra det nye år er uge 1
Avatar billede mcb2001 Nybegynder
08. november 2010 - 17:31 #6
i SQL skal du bruge:
SET DATEFIRST 1

jeg er ikke helt sikker på hvordan du løser dette i Access
Avatar billede anlu Nybegynder
08. november 2010 - 17:34 #7
Jo, præcis - med parametrene 2,2 burde du få ISO-ugenr. (=dansk uge).

Det er mærkeligt - jeg kører samme version af Access, men hos mig returnerer den uge 38 for d. 23-09-2010. Gad vide hvad det skyldes... kan det mon være Windows-version? (Jeg kører Vista)
 
Week: DatePart("ww";[MyDate];2;2)

ID    MyDate    Week
1    23-09-2010    38
2    01-01-2010    53
3    04-01-2010    1
Avatar billede dennisbjorn Juniormester
09. november 2010 - 13:34 #8
prøv:

Week: Right('00'+Format([MyDate];'ww';2;2);2)
Avatar billede dennisbjorn Juniormester
09. november 2010 - 13:36 #9
Nåå..det er i prinicippet samme løsning (sikre blot at ugenummer er to ciffer).

Men den virker hos mig...
Avatar billede pharlap Nybegynder
18. november 2010 - 13:36 #10
prøver igen når jeg har fået win7

Anlu - smid et svar
Avatar billede anlu Nybegynder
18. november 2010 - 18:37 #11
håber du får det løst... gider du skrive om det hjælper at skifte til win7?
Avatar billede pharlap Nybegynder
22. november 2010 - 09:46 #12
det kan du tro ;)
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