13. november 2006 - 14:08Der er
6 kommentarer og 1 løsning
Sortering af tekst og tal i en tabel
Jeg har lavet en tabel over medarbejdere og uddannelser og har en kolonne, som skal vise, hvilken dato uddannelsen er bestået. I Datatype har jeg valgt Dato og klokkeslæt, men det forhindrer mig i at skrive ”Tilmeldt” ud for de uddannelser, som endnu ikke er beståede, men kun tilmeldte. Jeg har brug for at sortere dem, således at de tilmeldte uddannelser ligger øverst, og dernæst de beståede uddannelser i kronologisk rækkefølge, men med de sidst beståede øverst. Jeg har på fornemmelsen, at jeg skal ind og opstille nogle kriterier under Valideringsregel, men hvilke?!
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Alternativt kan du jo også opfatte en Null værdi i datofeltet som "Tilmeldt". Du kan så i en forespørgsel konvertere null og datoen til en tekststreng:
SELECT IIf(BeståetDato Is Null, 'Tilmeldt', 'Bestået d. ' & Format(BeståetDato, 'dd.mm.yyyy')) AS Status FROM dinTabel
Synes godt om
Slettet bruger
13. november 2006 - 23:33#3
Du har brug for en blanding af de 2 foregående kommentarer. Du laver et felt:
Status: IIf(BeståetDato Is Null; 'Tilmeldt'; 'Bestået') og sorterer faldende.
Ja, undskyld, hvis jeg ikke har medtaget sorteringsdelen, men det bør så være:
SELECT IIf(BeståetDato Is Null,'Tilmeldt','Bestået d. ' & Format(BeståetDato,'dd.mm.yyyy')) AS Status FROM dinTabel ORDER BY IIf(BeståetDato Is Null,#1/1/2100#,BeståetDato) DESC;
Under sorteringen erstattes null med den 1. januar 2100, hvilket sikrer (i hvert fald i en del år ud i fremtiden), at de kun tilmeldte bliver sorteret øverst.
Hej Kjulius. Jeg er total nybegynder inden for Access og er derfor nødt til at have skåret det ud i pap. Jeg har lavet et nyt felt og har indsat IIf(BeståetDato Is Null,'Tilmeldt','Bestået d. ' & Format(BeståetDato,'dd.mm.yyyy')) Hvor skal jeg indsætte det næste?!
Så bruger du sikkert, som de fleste nybegyndere, den grafiske brugerflade. Mit eksempel er baseret på, at du skifter til SQL-visning. Grundet til, at jeg (og de fleste andre herinde) bruger "ren" SQL er, at det er pokkes svært at formidle funktionalitet, som er bare det mindste over "baby-niveau", når man ikke har mulighed for at vise grafik.
Men jeg skal gøre mit bedste for at "oversætte" til "grafik-sprog":
SQL sætningen IIf(BeståetDato Is Null,'Tilmeldt','Bestået d. ' & Format(BeståetDato,'dd.mm.yyyy')) AS Status omskrives til:
I "Felt" ruden... Status: IIf(BeståetDato Is Null,'Tilmeldt','Bestået d. ' & Format(BeståetDato,'dd.mm.yyyy')) I "Vis" ruden... Sæt tjek.
Det er vist også sådan du har gjort, hvis jeg forstår dig ret.
Så kommer vi til ORDER BY IIf(BeståetDato Is Null,#1/1/2100#,BeståetDato) DESC som kan "oversættes" til: I "Felt" ruden... IIf(BeståetDato Is Null,#1/1/2100#,BeståetDato) I "Sorter" ruden... Faldende I "Vis" ruden... Sæt ikke tjek
Jeg håber du blev lidt klogere... :-)
Som sagt synes jeg det er rigtigt svært at formidle en SQL til en sådan grafisk visning, og desuden er det ikke alle SQL forespørgsler der overhovedet kan vises i det grafiske format. Så hvis du er på vej til at bruge din database lidt mere, er det en god idé at få styr på SQL. Jeg starter ofte med at bruge den grafiske flade til at få de grundlæggende relationer og felter på plads, hvorefter jeg skifter til SQL-visningen for at arbejde videre med den. SQL er faktisk meget logisk opbygget, når man først får knækket "koden".
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.