Avatar billede submitt Nybegynder
25. august 2005 - 00:28 Der er 12 kommentarer og
1 løsning

vælg poster med startdato fra MÅNED/ÅR til MÅNED/ÅR

Hej

Har en Access-database hvor der er en startdato og en slutdato. Begge er "dato-klokkeslet format" og formatet er dd.mm.åååå.

Jeg har så en ASP-side hvor brugeren skal kunne vælge at se alle poster der har en startdato i en given periode. Til det formål har brugeren 4 selectbokse.

I de første 2 selectbokse (fra-funktionen) kan han kan vælge måned (januar til december), og i den næste boks han kan vælge årstal.

I de næste 2 selectbokse (til-funktion) er det det samme.

Dataene sender jeg videre til en ny side der så skal vise alle de pågældende poster. Men hvordan laver jeg SQL-sætningen på denne side???

Det som forvirrer mig er, at jeg i databasen bruger tal (dd.mm.åååå) og i selectboksene bruger jeg bogstaver (eks. marts). I databasen benytter jeg ikke kun måned og år - det gør jeg i selectboksene ....

Nogen der kan hjælpe?

På forhånd tak!!!
Avatar billede softspot Forsker
25. august 2005 - 00:59 #1
Hvis dine options har en value som modsvarer måneden hhv. året, f.eks.:

<select name="framd">
<option value="1">januar
<option value="2">februar
<option value="3">marts
...osv.
</select>

Så kan du på den side som modtager datoerne konstruere en dato som du kan bruge til opslag i databasen:

fraDato = request.form("frayr") & "-" & right("00" & cstr(request.form("framd")), 2) & "-01"

' konstruer til-datoen og læg en måned til og træk derefter en dag fra for at få den sidste dag i måneden (så slipper vi for at holde styr på hvormange dage der er i hver måned).
tilDato = request.form("tilyr") & "-" & right("00" & cstr(request.form("tilmd")), 2) & "-01"
tilDato = DateAdd("d", -1, DateAdd("m", 1, tilDato))

' vælg så data mellem de to datoer...
SQL = "SELECT * FROM tabel WHERE datoen BETWEEN #" & fraDato & "# AND #" & tilDato & "#"
Avatar billede busschou Praktikant
25. august 2005 - 07:05 #2
jeg er næsten enig i softspot, jeg synes bare det virker besværligt at kalde månederne fra 1-12 og derefter lægge "00" til og finde de 2 bagerste tal
Hvis du istedet kalder dem fra 01-12 så slipper du for den ekstra ting :o)
Så får du datoen direkte som
fraDato = request.form("frayr") & "-" & request.form("framd") & "-01"
Hvis du undrer dig over det bliver lavet som yyyy-mm-dd når du i databasen har dd-mm-yyyy så skyldes det en bug som gør at du ellers risikerer at der undervejs bliver byttet om på dag og måned
Avatar billede busschou Praktikant
25. august 2005 - 07:10 #3
Jeg tror til gengæld muligvis at du får et problem med din BETWEEN når du har klokkeslet i databasen (det erindrer jeg at jeg har prøvet men jeg er ikke 110% sikker)
Det jeg tænker på er at hvis du siger "BETWEEN #'2005-01-01'# AND #'2005-01-31'#" så bør den finde alt fra 2005-01-01 00:00:00 og 2005-01-31 23:59:59
Jeg tror så at du måske kun vil få det imellem 2005-01-01 00:00:00 og 2005-01-31 00:00:00
Jeg er som sagt ikke sikker!, men hvis det viser sig at jeg tror rigtig så kan du løse det ved at istedet for at som softspot siger at lægge en måned til og trække en dag fra, så kan du lægge en måned til og trække et minut fra som
tilDato = DateAdd("n", -1, DateAdd("m", 1, tilDato))
Avatar billede submitt Nybegynder
25. august 2005 - 11:29 #4
Tak begge to. Jeg afprøver det og vender tilbage :-)
Avatar billede submitt Nybegynder
25. august 2005 - 13:28 #5
Det virkede sgu'. Jeg vil prøve at se om jeg kan give softspot 80% af pointene og busschou de 20%. Tak for hjælpen gutter!
Avatar billede submitt Nybegynder
25. august 2005 - 13:29 #6
Kan i give mig et svar så jeg kan give point?
Avatar billede softspot Forsker
25. august 2005 - 13:44 #7
Det er rart der er noget som fungerer :D

Mht. pointfordelingen, så lyder det fint med mig :)
Avatar billede submitt Nybegynder
25. august 2005 - 13:47 #8
shit ... du skulle have haft det dobbelte. Sorry!!!! kan du give et svar igen?
Avatar billede softspot Forsker
25. august 2005 - 13:48 #9
Jeg opretter et spm til busschou hvor man får 40 point (det svarer til de 20%) så skulle det vel være på plads... eller?
Avatar billede submitt Nybegynder
25. august 2005 - 13:50 #10
Jep - det er helt okay med mig. CU
Avatar billede softspot Forsker
25. august 2005 - 13:52 #11
Tak for point :)
Avatar billede softspot Forsker
25. august 2005 - 13:53 #12
busschou >> point til dig på adressen: http://www.eksperten.dk/spm/642969
Avatar billede busschou Praktikant
25. august 2005 - 15:36 #13
takker for points :o)
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
Kurser inden for grundlæggende programmering

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