31. maj 2021 - 04:26Der er
6 kommentarer og 1 løsning
vise data på nettet i samme rækkefølge som i access tabellen
Jeg har en database med en række poster, som jeg har sorteret efter oprettelsestidspunkt. Jeg har en netside, som gerne skulle vise data fra posterne i samme rækkefølge. Men når de vises på nettet, kommer de frem i en anden, delvist vilkårlig rækkefølge og jeg kan ikke gennemskue, hvad der styrer sorteringen og ved ikke, hvad jeg kan skrive, for at overrule default-sorteringen?
Access-databasen hedder 'sommer2021' og tabellen hedder 'grunddata'.
Min kode ser således ud:
<% ' Databaseforbindelse - husk at angive sti til din database Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " & "DBQ=" & server.mappath("sommer2021.mdb") Conn.Open DSN
strSQL = "Select * from grunddata Where Land = 'Danmark' OR Land = 'Dk' OR Land = 'Denmark'"
Det synes jeg at jeg har forsøgt, men må have skrevet det forkert eller et forkert sted i koden, for kunne ikke få det til at virke. Når jeg skal sortere det helt præcist i databasen, skal jeg sortere på to felter: først på feltet 'tid, dernæst på 'dato'. Går ud fra, at jeg skal gøre det samme her? Men hvordan ser kodeteksten ud helt præcist, og hvor i koden skal den stå?
Ret fra = 'Denmark'" Til = 'Denmark' order by 'tid' desc, 'dato' desc” Hvis du vil have ældste først, så ret de to desc til asc (asc er default, så kan udelades)
vi nærmer os. Nu sorterer den - men kun på førstnævnte felt, ikke på begge. Jeg har forsøgt lidt forskelligt, bla. at sætte et AND ind mellem de to felter og at skrive "Order By tid, Order by dato" i stedet for blot at adskille de to felter med komma. Men det virker ikke. Så får jeg syntaks-fejl.
Så jeg har i hvert fald fundet det rette sted at sætte kommandoen ind, nu mangler jeg bare få den til at sortere på begge felter og ikke kun det, jeg nævner først.
jeg er ikke sikker på, om den kan sortere på tid og efterfølgende dato - muligvis skal du gøre det i omvendt rækkefølge = 'Denmark' order by 'dato' desc, 'tid' desc”
Bingo! Nu virker det, uden jeg helt forstår logikken i, at jeg først skal sortere på dato, derefter på tid, når jeg i selve databasen skal gøre modsat, for at resultatet bliver rigtigt. Jeg skal have de ældste først, så jeg kan udelade desc og asc, som du nævnte. Den endelige virksomme kode ser således ud:
strSQL = "Select * from grunddata Where Land = 'Danmark' OR Land = 'Dk' OR Land = 'Denmark' Order By Dato, Tid"
Tak for hjælpen!
Synes godt om
1 synes godt om dette
Ny brugerNybegynder
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.