I mitt exempel måste ha adovbs.inc-filen, eller dess konstanter tillgängliga.
Sedan skall nog inte fälten heta "fält" med svenska tecken, byt ut dom mot "field" eller nått...
4 svar · 584 visningar · startad av tlee
Jag har lite problem här jag..
Jag har en Access 2000 databas(svensk) och en sql 2000 server(engelsk)
Problem blir det när jag sorterar och V och W inte sorteras lika på sql servern som på access..
SQL2000 Access2000
USB30 USB30
USB50 USB50
V32G2 W20PS
V32GD V32G2
Jag har sökt runt lite och hittade detta.
http://cgi.webforum.nu/wf/Forum11/HTML/003381.html
Här skriver LarsG
"Om man har MS SQL server 2000 så kan man använda collations dels då man skapar tabeller och dels vid select. Collations är namngivna sorteringsordningar, för svenska så finns t.ex.
SQL_SwedishStd_Pref_Cp1_CI_AS
Mer om collations finns här http://msdn.microsoft.com/library/default.asp?ShowPane=false&URL=/library/psdk/sql/ts_ca-co_5ell.htm "
------------------------------------------------------------------------------
Kan man använda denna för att sortera V och W korrekt, eller är det bara för ÅÄÖ?
Hur använder man collations, ett exempel vore på sin plats.. lägger man det i sin SELECTS sats ?
Vide har också gjort en lösning på detta..
http://cgi.webforum.nu/wf/Forum42/HTML/000126.html
Han skriver:
SQL = "Select * from tabell"
Set RS = databas.execute(SQL)
set RS2 = Server.CreateObject("ADODB.Recordset")
RS2.Fields.Append "fält1", adVariant, 50
RS2.Fields.Append "sortering", adInteger, 6
RS2.open
While NOT RS.EOF
RS2.AddNew
RS2("fält1") = RS("fält")
RS2("sortering") = Cint(ASC(RS("fält")))
RS2.Update
RS.MoveNext
Wend
RS2.sort "sortering asc"
While NOT RS2.EOF
Response.write RS2("fält1")
RS2.MoveNext
Wend
Men när jag använder den koden får jag fel på.
RS2.Fields.Append "fält1", adVariant, 50
som säger:
ADODB.Fields error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/sortering2.asp, line 17
Vad kan det bero på.. Helst skulle jag vilja ha en lösning där man slipper greja för mycket utan
bara ändrar i sitt SQL anrop..
/t
I mitt exempel måste ha adovbs.inc-filen, eller dess konstanter tillgängliga.
Sedan skall nog inte fälten heta "fält" med svenska tecken, byt ut dom mot "field" eller nått...
Syntaktiskt, om du vill använda en collation i en order by så ser det väl ut
select * from t
order by c collate SQL_SwedishStd_Pref_Cp1_CI_AS
Nu har jag ingen aning om vad denna sorteringsordning innebär men du kan ju testa lite.
okej grabbar.. nu funkar det..
Set DB_QUERY_TARGET = ConnectTarget.Execute("SELECT * FROM tbl_Products ORDER BY col_ArticleNr collate SQL_Scandinavian_Cp850_CS_AS;")
yeah baby.. tack som fan grabbar!..
/t
Access databas ?
Ok efter vad jag förstår så funkar detta bara på en SQL databas.
Men hur gör man med en access databas. Jag hittar inget som fungerar.
Handled mig vise män.