När jag vill sortera min tabell efter ett numeriskt värde, presenteras värdena alfabetiskt. Vad har fältet för datatyp? Hur ser man vilken datatyp ett fält har? Öppna Access, markera tabellen och öppna den i design-läge så ser du vilken datatyp det är. Japp, är text. Antar att det ska vara nummer? Testa att ändra det via kod. Tack, det gick bra, men det är mer än en kolumn jag vill ha ändrat. En idé: skapa en temporär tabell med alla fält i rätt datatyp och sen flyttar du över all data från den gamla tabellen till den nya. Kom ihåg att göra om det aktuella fältet/fälten till rätt datatyper vid flyttningen. Ta bort den gamla tabellen. Döp om den nya tabellen. En god idé. Men det är smått mäckigt, eftersom det rör sig om drygt 90 kolumner. Kan man göra detta mha kod? Det bör inte vara några problem. Istället för att få ut innehållet i fälten genom RS("namn") så kan du ta ut det via RS(1), RS(2) osv. Det borde gå att göra såhär... Bara en liten fråga. Det låter väldigt mycket i mina öron också. Tyvärr är jag ingen hejare på ASP - nähä!? - men jag körde som någon ovan beskrev; skapade en ny tabell och där var det inga problem att sätta hur många kolumner jag ville till att vara numeriska.Sortera efter faktiskt värde
Den här ordningen blir det nu:
9, 8, -7, 6, 5, 2, 11, 0...
Och jag vill så klart ha
11, 9, 8, 6, 5, 2, 0, -7
Någon som vet?
Värdena hämtas så klart från en databas mha
SQL = " SELECT * FROM statdata_org ORDER BY " & order & " DESC "
Tack!
BjörnSv: Sortera efter faktiskt värde
Det ska vara en datatyp av heltal eller flyttal för att det ska fungera...Sv:Sortera efter faktiskt värde
Använder MS Access 2002.Sv: Sortera efter faktiskt värde
Jag förmoda att du har text, men man vet ju aldrig...Sv:Sortera efter faktiskt värde
Har försökt sätta de aktuella posterna till 'number', men när jag ska spara databasen får jag felmeddelande "Det finns för många fält definierade".
Hur göra?Sv: Sortera efter faktiskt värde
<code>
ALTER TABLE Tabell ALTER COLUMN Kolumn INTEGER
</code>
ThomasSv:Sortera efter faktiskt värde
Alltså körde jag genom så långt jag kunde, men efter ett tag dök samma felmeddelande upp igen,
dvs för många fält...Sv: Sortera efter faktiskt värde
ThomasSv:Sortera efter faktiskt värde
Tacksamt,
BjörnSv: Sortera efter faktiskt värde
Ordningen på kolumnerna borde vara samma som när du skapade tabellen, men du kan kontrollera det genom RS.Fields.Item(x).Name först.
En liten start:
<code>
Set RS = Con.Execute("SELECT * FROM GammalTabell")
Do Until RS.EOF
SQL = "INSERT INTO NyTabell ("
For a = 0 To RS.Fields.Count -1
SQL = SQL & RS.Fields.Item(a).Name & ", "
Next
SQL = Left(SQL, Len(SQL) -2)
SQL = SQL & ") VALUES ('"
For a = 0 To RS.Fields.Count -1
SQL = SQL & RS(a) & "', '"
Next
SQL = Left(SQL, Len(SQL) -2) & ")"
Con.Execute SQL
RS.MoveNext
Loop
</code>
Den där koden förusätter att alla fält är text. Du får fixa så att den kollar vad fälttypen är för nått och anpassa koden efter det.
ThomasSv: Sortera efter faktiskt värde
1. Kopiera tabellen i Access.
2. Töm den nya tabellen.
3. Ändra fälten från text till nummer där det ska vara (i nya tabellen)
4. Kör "Komprimera och reparera" verktyget
5. Kör SQL frågan "INSERT INTO ny_tabell VALUES (SELECT * FROM gammal_tabell)
Det kan dock bli problem om du har en autoräknare i tabellerna...
Men sånt går också att fixa, men det blir lite jobbigare då.
Viktigt är också att du inte lägger till, tar bort eller ändrar orning på kolumnerna under tiden du utför detta.Sv:Sortera efter faktiskt värde
Du skrev att du hadde över 90 fält i tabellen (eller läste jag fel).
Det låter väldigt mycket i mina öron, kan du inte normalisera det?
(bryta ner det till flera tabeller)Sv: Sortera efter faktiskt värde
Så problemet är löst och jag tackar för hjälpen!