Avatar billede rbb Praktikant
07. juli 2003 - 21:09 Der er 6 kommentarer og
1 løsning

Danske månedsnavne og sortering

Hej eksperter!
Jeg er nybegynder i ASP og har fået nedenstående kode sat sammen. Det virker (næsten) som den skal, men jeg er gået i stå med følgende:

Jeg vil gerne have udskrevet mine resultater med danske månedsnavne og sorteret dem i datoorden, men det kan jeg sgu´ ikke finde ud af.

Jeg arbejder i FrontPage og med en Access database.

En der vil hjælpe?

Hilsen
René
-------------------------------------
<%

    ' Denne forespørgelse fylder navne i formen "N1"
    ' SQL forespørgsel
    strSQLN1 = "SELECT * FROM [Forening]"
    Set rs = Conn.Execute(strSQLN1)
    ' Gennemløber Recordset (rs) med en løkke og fylder rs ind i formen
    Do   
        Response.Write "<option>" & rs("Forening") & "</option>"
        ' Gå til næste Record i rs
        rs.MoveNext
    Loop While Not rs.EOF

%>

 
  </select> <input type="submit" value="Find" name="Send"></p>
</form>

<%

'opretter ny variabel
strN1 = Request.Form("N1")
'strN1 = "Alle"
IF LEN(strN1)<2 THEN strN1 = "%"   

' SQL forespørgsel
strSQL = "SELECT * FROM [Q_aktiviteter] WHERE [Forening] LIKE '" & strN1 & "'"

'Debug:
' Response.Write strSQL   
   
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)

' Her starter html tabellen
Response.Write "<table border=""2"" width=""100%"">"

' Hvis søning ikke er tom
IF NOT rs.EOF THEN

' Her laver jeg overskriften på tabellen
Response.Write "<tr><td valign=""top""><b>Dato</b></td><td valign=""top""><b>Forening</b></td><td valign=""top""><b>Begivenhed</b></td><td valign=""top"" align=""center""><b>Sted</b></td></tr>"


' Gennemløb Recordset (rs) med en løkke
Do

' Denne funktion laver danske måneds navne

Function MonthName(StrMon)
    Select Case StrMon
        Case 1
            MonthName = "Januar"
        Case 2
            MonthName = "Februar"
        Case 3
            MonthName = "Marts"
        Case 4
            MonthName = "April"
        Case 5
            MonthName = "Maj"
        Case 6
            MonthName = "Juni"
        Case 7
            MonthName = "Juli"
        Case 8
            MonthName = "August"
        Case 9
            MonthName = "September"
        Case 10
            MonthName = "Oktober"
        Case 11
            MonthName = "November"
        Case 12
            MonthName = "December"
        Case Else
            MonthName = "ERROR!"
    End Select
End Function


  ' Udskriv værdien af kolonnerne
  Response.Write "<tr><td valign=""top"">" & rs ("Dato") & "</td><td valign=""top"">" & rs("Forening") & "</td><td valign=""top"">" & rs("Begivenhed") & "</td><td valign=""top"">" & rs("Sted") & "</td></tr>"
  ' Her laver jeg adskillensen mellem linierne i resultatet.
  Response.Write "<tr><td width=""100%"" colspan=""6"" bgcolor=""#DFDFDF"" height=""1""></td></tr>"



    ' Gå til næste Record i rs
  IF NOT rs.eof THEN rs.MoveNext

' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF

ELSE
' Tom søgning
Response.Write "<table border=""0"" width=""100%""><tr><td width=""100%"">&nbsp;</td></tr><tr><td width=""100%""><p align=""center"">Der er p.t. ingen aktiviteter for " & Request.Form("N1") & "</td></tr></table>"
END IF

' Lukker og "tømmer" rs
rs.close
set rs = Nothing

' Her slutter html tablen

Response.Write "</table>"
Avatar billede eagleeye Praktikant
07. juli 2003 - 21:17 #1
For at sortere på dato så skal du brugr ORDER BY i din SQL:

strSQL = "SELECT * FROM [Q_aktiviteter] WHERE [Forening] LIKE '" & strN1 & "' ORDER BY dato DESC"



Hvordan har du gemt dato i databasen, altså hvilket format og et eks?
Avatar billede rbb Praktikant
07. juli 2003 - 21:31 #2
Datoen er gemt som "langt datoformat" med en inputmaske = 00-00-0000;0;_
Indtastningen foretages altså som 12-07-2003 og vises som 12. juni 2003.
Avatar billede eagleeye Praktikant
07. juli 2003 - 21:38 #3
Du kan sætte denne linje i toppen af din kode hvis den ikke køre DK dato-format.:
<% Session.LCID = 1030 %>


Der hvor du udskriver datoen

Response.Write "<tr><td valign=""top"">" & rs ("Dato") &

indføre formatDateTime:

Response.Write "<tr><td valign=""top"">" & FormatDateTime(rs ("Dato"),1) &
Avatar billede rbb Praktikant
07. juli 2003 - 21:55 #4
Tak det virker, dog med en enkelt detalje...

Efter sorteringen i SQL kommer data fint i DESC-order. Efter jeg har lagt FormatDateTime ind, sorterer den modsat (assending). Er der noget jeg har gjort forkert?
Avatar billede eagleeye Praktikant
07. juli 2003 - 21:57 #5
Med DESC i SQLen sortere den så den nyeste dato kommer først.
Uden noget eller med ASC sortere så den ældste dato kommer først ud.
Avatar billede eagleeye Praktikant
07. juli 2003 - 21:57 #6
Så det skulle helt ikke ændre noget at man sætte formatdatetime ind.
Avatar billede rbb Praktikant
07. juli 2003 - 22:01 #7
Glimrende. Jeg skulle bare lige forstå det...
Det virker præcis som jeg ønsker. Tak
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