Avatar billede tallens Nybegynder
14. august 2002 - 11:39 Der er 10 kommentarer og
1 løsning

Find Dato via Uge og år?

er det muligt at finde datoen/ugedagene, i Access 2000 ved kun at havde ugen og årstallet?

Jeg har 2 tal på forhånd.
- Årstal: (eg. 2002, 2003...)
- Ugetal: (eg. 01, 02, 03 ...)

Således at jeg kan få en table lidt ala dette:

År  | Uge | Mandag    | Tirsdag ... ...| Fredag
2002 | 01  | 31/12/2001 | 01/01/2002    | 04/01/2002
2002 | 02  | 07/01/2002 | 08/01/2002    | 11/01/2002
etc.....

?
jeg synes jeg har prøvet rimlig mange ting men uden held. det kan nemt være det ikke kan lade sig gøre men alligevel, jeg er villig til at prøve =)

Jeg har lavet en "Function" i VBScript (ASP) som kan klare det, om end en meget besværlig "Function", men jeg synes ikke at kunne få Access til at gøre det, er der nogen som har pillet ved muligheden for at det kan lade sig gøre?...

Vh Tallens
Avatar billede moses Praktikant
14. august 2002 - 12:17 #1
Uge + År er ikke entydigt ned på en enkelt dag, men du kan få detailviden om den valgte uge.

Jeg har ikke lige så meget tid lige nu til en færdig kode, men i princippet er det følgende du skal gøre:

function GetMondayDate(Week as integer, Year as Integer) as Date

if weekday(CDate("1-1-" & Year),vbMonday) <= vbThursday Then
  GetMondayDate = dateadd("ww", Week, dateadd("y", 1-weekday(CDate("1-1-" & Year), vbMonday), CDate("1-1-" & Year)))
else
  GetMondayDate = dateadd("ww", Week, dateadd("y", 8-weekday(CDate("1-1-" & Year), vbMonday), CDate("1-1-" & Year)))
end if
end function
Avatar billede moses Praktikant
14. august 2002 - 12:25 #2
Og så skal vi lige have reddet verden for amerikanerne:
Ulogisk nok, så rettes konstanterne jo ikke i VB bare fordi man vælger mandag, som den første dag. Mandag er stadig dag 2 i ugen ?!?!?
Så derfor skal du lige hardcode "4"

if weekday(CDate("1-1-" & Year),vbMonday) <= 4 Then
Avatar billede tallens Nybegynder
14. august 2002 - 12:29 #3
Lækkert Tak Moses,

Jeg kan ha' mis forstået noget men kan alt dette klares i MS Access?...

jeg vil gerne undgå at skulle til at bruge et ASP script til at klare det.

Vh Tallens
Avatar billede moses Praktikant
14. august 2002 - 12:29 #4
ÆV!
I begge udregninger, skal der j olige rettes noget:
  -----
GetMondayDate = dateadd("ww", Week - 1,
Avatar billede moses Praktikant
14. august 2002 - 12:34 #5
Ja ja - det er grundlæggende funktioner i VB.
Avatar billede tallens Nybegynder
14. august 2002 - 13:31 #6
Hej igen Moses, jeg ved godt du har travlt, men jeg er ikke helt med ihvad du mener med det?! (jeg er måske lidt langsom i dag)

det kan også være det bare er mig, men med er jeg ikke helt (jeg er ikke særlig dygtig til Access, faktisk stinker jeg til det :) jeg skal "bare" lave noget i den =)

Men indtil vidre har du været flittig og hurtig til at svare.
/vh Tallens
Avatar billede moses Praktikant
14. august 2002 - 14:41 #7
Du skal bare åbne Access, Lave en form (åbne en eksisterende).
Hvis du så har tre felter kaldet Uge, Aar og Svar, så kan du placere en knap kaldet Command0, med en kode, der blot ser sådan her ud:

procedure Command0_Click()
  Svar.Value = GetMondayDate(Uge.Value, Aar.Value)
end procedure

Så ender du med svaret i feltet Svar.
Avatar billede moses Praktikant
14. august 2002 - 14:42 #8
Den helt korrekte funktion ser sådan ud:

function GetMondayDate(Week as integer, Year as Integer) as Date

if weekday(CDate("1-1-" & Year),vbMonday) <= 4 Then
  GetMondayDate = dateadd("ww", Week - 1, dateadd("y", 1-weekday(CDate("1-1-" & Year), vbMonday), CDate("1-1-" & Year)))
else
  GetMondayDate = dateadd("ww", Week - 1, dateadd("y", 8-weekday(CDate("1-1-" & Year), vbMonday), CDate("1-1-" & Year)))
end if
end function
Avatar billede tallens Nybegynder
14. august 2002 - 14:45 #9
høh okey, nu er jeg lidt med (en smule)! (uha jeg er besværlig =)

okey kan jeg smide den så den laver et output til en colonne i en Forspørgelse? som jeg så kan hente via ASP script som en Tabel?

eller?

/vh TAllens
(på forhånd tak.. du skal nok få dine point snart, jeg er bare stadig lidt ude at sejle her.. håber det går?)
Avatar billede moses Praktikant
14. august 2002 - 14:51 #10
Ja det kan du selvfølgelig også, da det drejer sig om en funktion, men så skal funktionen lægges ind i et Modul og den skal erklæres Public, så den kan ses udenfor dette modul:

Public Function GetMondayDat(........ OSV.
Avatar billede tallens Nybegynder
27. august 2002 - 11:01 #11
Det virker.. tak Moses.. =)


Skulle lige sparke mig selv i gang med at huske nogle ting som jeg var sikker på jeg havde glemt.. men det kommer tilbage.. langsomt.. men det kommer =)

tak igen.
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