Avatar billede Slettet bruger
28. november 2010 - 17:20 Der er 5 kommentarer og
1 løsning

Udtræk af årgang fra db

Jeg vil gerne trække brugere ud i en bestemt alder, f.eks. ml 55-60 år.

Min form har 3 input, klub, alder_min og alder_max.

I db er det fra kolonnen fdag (fødselsdag - kort datoformat) jeg skal hente brugere, og jeg skal bruge noget kode a al denne:

SQLstmt = "SELECT * FROM bruger WHERE klub = '" & request("klub") & "' and fdag BETWEEN '" & Request("alder_min") & "' AND '" & Request("alder_max") & "'ORDER BY klub;"

Koden virker selvfølgelig ikke, idet fdag først skal konverteres til det antal år brugeren er når søgningen udføres, hvordan gør jeg det?

mvh. rwj
Avatar billede claes57 Ekspert
28. november 2010 - 18:27 #1
idag=now()
fraalder = dateadd("yyyy",-60,idag)
tilalder = dateadd("yyyy",-55,idag)

SQLstmt = "SELECT * FROM bruger WHERE klub = '" & request("klub") & "' and fdag BETWEEN #" & fraalder & "# AND #" & tilalder & "# ORDER BY klub"


skal det være helt pænt, så skal dem, der ved klub-årets start, der er over 60 og dem, der er under 55 sorteres fra - så man får et fast udtræk i klubbens kalenderår.
Bemærk, at i access skal datofelter omgives af # og ikke '
Avatar billede claes57 Ekspert
28. november 2010 - 18:28 #2
obs: du skal erstatte
-60 i fraalder med Request("alder_max")
og -55 i tilalder med Request("alder_min")
Avatar billede Slettet bruger
28. november 2010 - 19:30 #3
Min kode ser sådan ud nu:
<%

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("db/test.mdb")

idag=now()
fraalder = dateadd("yyyy",Request("alder_max"),idag)
tilalder = dateadd("yyyy",Request("alder_min"),idag)
SQLstmt = "SELECT * FROM bruger WHERE klub = '" & request("klub") & "' and fdag BETWEEN #" & fraalder & "# AND #" & tilalder & "# ORDER BY klub"

response.write SQLstmt

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)
%>

<%
DO WHILE NOT rs.EOF
klub = rs("klub")
fdag = rs("fdag")
%>

<%=klub%>
<%=fdag%>

<%
rs.MoveNext
LOOP
RS.Close

conn.Close
Set conn = nothing
Set SQLstmt = nothing
%>

og jeg får denne fejlbesked:
-
SELECT * FROM bruger WHERE klub = 'Hovedstadsregion' and fdag BETWEEN #28-11-2080 19:21:33# AND #28-11-2030 19:21:33# ORDER BY klub
så sker der ligesom ikke mere. Alderen ser ud til at fungere mange år frem?
Avatar billede claes57 Ekspert
28. november 2010 - 19:49 #4
der bliver lagt til i stedet for trukke fra - vi vender lige fortegnet
ret fra
fraalder = dateadd("yyyy",Request("alder_max"),idag)
tilalder = dateadd("yyyy",Request("alder_min"),idag)
til
fraalder = dateadd("yyyy",0-Request("alder_max"),idag)
tilalder = dateadd("yyyy",0-Request("alder_min"),idag)
Avatar billede Slettet bruger
28. november 2010 - 20:17 #5
Super, det virker perfekt.

Mange tak for hjælpen og fortsat god søndag.

Smid et svar:-)

Mvh. rwj
Avatar billede claes57 Ekspert
29. november 2010 - 10:45 #6
ok...
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