Avatar billede jasman Nybegynder
04. april 2002 - 17:50 Der er 5 kommentarer og
2 løsninger

Højrestilling af et tekstfelt.

Hejsa.

Kan nogen fortælle mig om følgende er muligt i Access ?
Jeg har et tekstfelt, som per definition jo også kan indeholde tal, f.eks. et kontonummer.
Feltet er primærnøgle på tabellen.
Kan man definere feltet således, at værdier som indtastes i feltet lagres højrestillet i databasen ?
Altså således at sorteringen af teksterne:
1
10
2

vil blive
1
2
10

da værdierne lagres som:
.........1
.........2
........10

hvor . er blanke ?

Jeg ønsker altså tekstfeltet defineret således at hvis der hældes tal ind i feltet, sorteres der korrekt.
Avatar billede Jman Praktikant
04. april 2002 - 17:55 #1
SQL = "Select * from databasen ORDER BY LEN(tabelnavnet), tabelnavnet"
Avatar billede jasman Nybegynder
04. april 2002 - 18:09 #2
Undskyld. Jeg skriver lige begrundelsen for min afvisning:
Det du vil er at sortere på en længden af feltet.
Det giver jo ikke den rigtige sortering.
Jeg vil sortere tal korrekt ved at højrestille dem i feltet i databasen (stille blanke foran værdien).
Hvis man gør dette på et tekstfelt, vil man opnå sortering LIGESOM hvis feltet var et heltalsfelt, med ganske almindelige tal i.
Avatar billede Jman Praktikant
04. april 2002 - 18:20 #3
aaarh - OK
Jeg tror ikke du kan højrestille i et atabasefelt - men derimod kan du jo bare kalde feltværdien i en højrestillet celle
Avatar billede terry Ekspert
04. april 2002 - 20:15 #4
SELECT * FROM YourTable Order BY Clng(TheField)
04. april 2002 - 21:00 #5
hvorvidt de er højrestillet har ingen betydning. Det der er afgørende er at den sortere pr karakter.
Dette kan du omgå ved at bruge forespørgsler til at vise dataene.
I en forespørgsel kan man lave en ny kolonne, som ser således ud:
Sortering: Right("0000" & [Dit felt];4)

Du vælger at forespørgslen sortere efter dette felt, men du behøver ikke at vise kolonnen.

Denne forespørgsel bruger du så bare alle steder, hvor du ellers ville have brugt tabellen.

/Thomas
www.makeiteasy.dk
Avatar billede jasman Nybegynder
05. april 2002 - 08:50 #6
Begge jeres forslag ser ud til at virke, i hvert tilfælde hvis jeg anvender en query som datasource.
MEN ... det er da alt andet langsommere at anvende en eller anden mærkelig funktion i sin where clause (som indekset ikke direkte understøtter), end hvis man kunne sige til databasen at feltet var højrestillet.
Men ok, it'll have to do.
Jeg forstår godt virkemåden er RIGHT funktionen men hvad gør CLng ???
05. april 2002 - 08:53 #7
konvertere tallet til ....et tal. Derved kan den sortere korrekt.

Clng-metoden er nok den hurtigste, men Right-metoden har den fordel at den også virker, hvis der kan forekomme bogstaver og andre tegn end lige tal.
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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