22. maj 2010 - 11:44 Der er 3 kommentarer og
2 løsninger

Sortering af items i en listbox

Jeg har en listbox med to kolonner, aktivitetsnumre og aktivitetsnavne saasom Boernegruppe, Damegruppe, Herregruppe, Ungdomsgruppe.  Kilden er tabellen Gruppe med de samme to kolonner, altsaa SELECT gruppeid, gruppenavn FROM Gruppe ORDER BY 2.  Til listboxen jeg saa tilfoejet en aktivitet (Alle grupper), efter raad fra en tutorial i ronde paranteser for at faa den foerst i listen fordi ronde paranteser har et lavere ASCII nummer end tal og bogstaver.  Queryen bliver saaledes:  SELECT 0, '(Alle grupper)' FROM Gruppe UNION SELECT gruppeid, .....

Saa langt saa godt.  Men nu vil jeg tilfoeje en aktivitet i tabellen Gruppe saaledes at den kommer sidst i listboxen.  Eftersom { parantesen har et hoejere ASCII nummer end tal og bogstaver (123 hvor z har 122) kaldte jeg den nye aktivitet {cykelgruppe}.  Men i listboxen kommer den til at staa efter (Alle grupper) men foer Boernegruppe.

Jeg har indtil videre klaret mig ved at kalde gruppen z_cykelgruppe, men det ser jo ikke saerlig smart ud.  Hvordan kan jeg soerge for at cykelgruppen kommer sidst i listboxen? (Jeg har ogsaa proevet med ~cykelgruppe og |cykelgruppe men med det samme resultat).
Avatar billede Slettet bruger
23. maj 2010 - 01:00 #1
hvorfor tager du ikke bare cykelgruppe med i tabellen gruppe?~)
Avatar billede Slettet bruger
23. maj 2010 - 01:02 #2
hov, nu ved jeg hvad du mener... og hvad løsningen er!~)
Avatar billede Slettet bruger
23. maj 2010 - 01:11 #3
du laver en ekstra felt i din tabel gruppe, du kunne kalde det Raekkeflg. Her skriver du et tal for den rækkefølge du vil have vist grupperne, husk at du starter med nr. 2 for Alle grupper skal du jo have til at stå først.

SELECT gruppeid, gruppenavn, raekkeflg FROM Gruppe ORDER BY 3
UNION SELECT 0, 'Alle grupper', 1 FROM Gruppe
UNION SELECT 0, 'Cykelgruppe', 9 FROM Gruppe

her har du tallene fra 2 til 8 til de andre i gruppe tabellen..

Du kunne måske også bare sortere efter gruppeid eller bare selv udfylde din listbox:

'Alle Grupper';'Boernegruppe';....    osv ...;'Cykelgruppe'

Go' pinse!~)
23. maj 2010 - 09:03 #4
spg, tak for dit indlaeg.  Jeg har nu en daarlig nyhed og en god nyhed. 

Den daarlige nyhed er at din foreslaaede loesning ikke svarer til mit behov.  Cykelgruppe var blot et eksempel - jeg har behov for, ud over de faste grupper (som i eksemplet Boernegruppe o.s.v.) dynamisk at tilfoeje og slette nye grupper der i listboxen skal staa for sig selv, altsaa i slutningen af listen.

Den gode nyhed er at da jeg her til morgen taenkte over hvordan jeg bedst skulle forklare hvorfor din foreslaaede loesning ikke var tilstraekkelig kom jeg til at se hvad grundproblemet er:  Access sorterer ikke i Ascii raekkefoelge! Jeg proevede at aendre nogle gruppenavne til at begynde med lille.  Saa burde disse grupper komme efter grupper der begynder med stort, men det sker heller ikke.  Saa jeg googlede og fandt funktionen Asc og eksempler som dette:  SELECT gruppeid, gruppenavn FROM Gruppe ORDER BY (Asc(naam));  Med denne funktion faar jeg Ascii sortering, altsaa () foerst og {} sidst.

Dit svar, i sig selv ikke tilstraekkeligt, satte mig igang med selv at finde svaret.  Skal vi dele points?
Avatar billede Slettet bruger
23. maj 2010 - 23:40 #5
!~)
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