10. oktober 2005 - 14:27Der er
8 kommentarer og 1 løsning
Sorter efter måned. vises ud fra Select bokse
Hej. Har før haft dette spm. på exp, men det var vist en dødssejler, så jeg prøver lige igen...
Jeg har en side der med en repeat region lister mine records op fra en tabel aktivitetskalender.
For at overskueliggøre aktivitetskalenderen for brugerne vil jeg gerne have det lavet således at man via to select bokse vælger hhv. måned og år, hvorpå så posterne fra den valgte måned vises.
Er der nogen der kan hjælpe?
Har været igang, så jeg har allerede lidt kode, hvis det bliver nødvendigt...
<% dim monthSel, yearSel if isnumeric(Request.querystring("yearSel")&"") then yearSel = cint(Request.querystring("yearSel")) else yearSel = year(date) if isnumeric(Request.querystring("monthSel")&"") then monthSel = cint(Request.querystring("monthSel")) else monthSel = month(date)
Ja, det må være noget i den retning. Skal der stå "between" i stedet for "detween"? Får denne fejl ved "between": [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
og denne ved "detween": [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'FraDato detween '01-10-2005' and '31-10-2005''.
Jeg bruger en access database, og mine koder ser bl.a. lige nu således ud:
<% dim monthSel, yearSel if isnumeric(Request.querystring("yearSel")&"") then yearSel = cint(Request.querystring("yearSel")) else yearSel = year(date) if isnumeric(Request.querystring("monthSel")&"") then monthSel = cint(Request.querystring("monthSel")) else monthSel = month(date)
fromDate = dateserial(yearSel,monthSel,1) toDate = dateserial(yearSel,monthSel+1,0) %> <% Dim RSaktivitetskalender Dim RSaktivitetskalender_numRows
Set RSaktivitetskalender = Server.CreateObject("ADODB.Recordset") RSaktivitetskalender.ActiveConnection = MM_ballumby_STRING RSaktivitetskalender.Source = "SELECT id, titel, FraDato, arrangor, TilDato, tidspunkt, sted FROM Aktivitetskalender where FraDato detween '"& fromDate &"' and '"& toDate &"' ORDER BY FraDato" RSaktivitetskalender.CursorType = 0 RSaktivitetskalender.CursorLocation = 2 RSaktivitetskalender.LockType = 1 RSaktivitetskalender.Open()
RSaktivitetskalender_numRows = 0 %>
Form taggen har jeg sat EFTER asp delen, må jeg det?
RSaktivitetskalender.Source = "SELECT id, titel, FraDato, arrangor, TilDato, tidspunkt, sted FROM Aktivitetskalender where FraDato between #"& fromDate &"# and #"& toDate &"# ORDER BY FraDato"
Function ConvertToSqlDate(dato) dim SQLYear,SQLMonth,SQLDay SQLYear = Year(dato) SQLMonth = right("0"&Month(dato),2) SQLDay = right("0"&Day(dato),2) ConvertToSqlDate = SQLMonth&"-"&SQLDay&"-"&SQLYear End Function
Access datoer skal omkrandses af #, andre databaser bruger '. Access datoformat er mm-dd-yyyy, andre bruger yyyy-mm-dd. Derfor skal datoer (næsten) altid omformateres når de skal ind i SQL.
Ja det kører, men når man besøger siden altså uden querystring, så vises aktiviteter for den aktuelle måned. Men i selectboksen står der stadig januar, hvilket nok ville forvirre mine brugere. Kan det løses med et eller andet á la
if isEmpty.querystring then "et eller andet med month(now)"
dim monthSel, yearSel if isnumeric(Request.querystring("yearSel")&"") then yearSel = cint(Request.querystring("yearSel")) else yearSel = year(date) if isnumeric(Request.querystring("monthSel")&"") then monthSel = cint(Request.querystring("monthSel")) else monthSel = month(date)
Så kan du bruge monthSel og yearSel til at sammenligne med i stedet: <form name="myForm" method="get"> <select name="yearSel" onchange="this.form.sumbit();"> <option value="2004" <% if yearSel = 2004 then response.write "selected" %>>2004</option> <option value="2005" <% if yearSel = 2005 then response.write "selected" %>>2005</option> </select> <select name="monthSel" onchange="this.form.sumbit();"> <option value="1" <% if monthSel = 1 then response.write "selected" %>>Jan</option> <option value="2" <% if monthSel = 2 then response.write "selected" %>>Feb</option> </select> </form>
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.