Avatar billede matthiasmarkussen Nybegynder
15. marts 2006 - 14:58 Der er 4 kommentarer

Alfabetisk indholdsoversigt sorterer "danske tegn" forkert

Jeg skal udskrive en oversigt over kunder/firmanavn. Databasen indeholder ca. 1250 poster - så derfor ønsker jeg at dele det op med et "A B C D ..OSV"-index.
Nedestående kode henter fra DB og grupperer forbogstavet.
Problemet med nedestående er at de få firmanavne der starter med Æ,Ø,Å laver kludder idet.
Dels sorteres de forkert, og indeholder databasen eksempelvis flere poster med forbogstav Å, skrives 'Å' flere gange og kludrer i min ABC...  Således :

A Å A Å A B C D E F G H I J K L M N O Ø O P Q R S T U V W Y

Jeg har lavet flere forsøg med server.htmlencode uden held!

Koden

<%

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


SQLstmt = "SELECT firma FROM kundeoversigt ORDER BY firma"

Conn.Execute (SQLstmt)

Set rs = conn.Execute(SQLstmt)
 
 
  Do while not rs.EOF
    strFirma = RS("firma")


    Bogstav  = UCase(left(strFirma,1))
    If tmp <> Bogstav then
       
        Response.Write "  <font  class='linksfont' >
        <a href='sortet.asp?mode="& Bogstav &"'>"
        & Bogstav & "</a>"

        tmp = Bogstav
       
    End if
     
    Rs.MoveNext
Loop
 
  %>
Avatar billede fennec Nybegynder
15. marts 2006 - 15:10 #1
lav det med sql

SQLstmt = "SELECT distinct left(firma,1) FROM kundeoversigt ORDER BY left(firma,1)"
Set rs = conn.Execute(SQLstmt)
while not rs.eof
  Response.Write "  <font  class='linksfont' ><a href='sortet.asp?mode="& Bogstav &"'>"& rs(0) & "</a>"
  rs.MoveNext
wend
Avatar billede matthiasmarkussen Nybegynder
15. marts 2006 - 15:35 #2
Ja, så simpelt kan det laves! Tak!
Det var det vigtigste!
Men det løser stadig ikke helt sorteringen så æ-ø-å kommer til sidst
(A Å B C D E F G H I J K L M N O Ø P Q R S T U V W Y ) kan det løses??
Avatar billede fennec Nybegynder
15. marts 2006 - 15:49 #3
Det er et sprog problem. I MS-SQL kaldes det collate, men jeg ved ikke om Access har det indbygget:

SQLstmt = "SELECT distinct left(firma,1) FROM kundeoversigt ORDER BY left(firma,1) collate Danish_Norwegian_CI_AS"
Avatar billede eagleeye Praktikant
15. marts 2006 - 22:22 #4
For at ændre sorterings rækkefølgen. Du kan åbne database filen i Access:

Vælg menuen:  Funktioner
Vælg punktet:  Indstillinger...
Vælg fanen:  Generelt
I drop-down boksen "Sorteringsrækkefølge for nye databaser" vælges sprog.
Tjek den er sat til "Norsk/Dansk" hvis ikke vælg "Norsk/Dansk"

Det gælder så for nye database filer, for det skal virke for den du har skal du koprimere databasen og det gøres via:
Vælg menuen:  Funktioner
Vælg punket:  Databasefunktioner
Vælg punket:  Komprimere database
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