Avatar billede elborg Novice
09. juli 2022 - 13:48 Der er 10 kommentarer og
1 løsning

Sortering af dato

Har lavet denne kode fra 2 databaser, og resultatet skal sortere efter query2 efter salgsdato. Sælger nr. 3179 har lavet 29 salg.... hvordan sorterer jeg efter salgsdato?

<%
Dim DBconn
Set DBconn = Server.CreateObject("ADODB.Connection")
DBconn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("Saelger.mdb")

Dim rs, query
Set rs = Server.CreateObject("ADODB.RecordSet")

query = "SELECT SalgID FROM Salg WHERE SalgID.SaelgerID=3179"
rs.Open query, DBconn

count=1

Do While Not rs.EOF

Dim DBconn2
Set DBconn2 = Server.CreateObject("ADODB.Connection")
DBconn2.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("Salg.mdb")

Dim rs2, query2
Set rs2 = Server.CreateObject("ADODB.RecordSet")

query2 = "SELECT * FROM Salg WHERE Salg.SalgID =" & rs("SalgID") & " ORDER BY Salg.Salgsdato"
rs2.Open query2, DBconn2

Response.Write "<b>"
Response.Write count
Response.Write "</b>&nbsp;"
Response.Write rs2("SalgID")
Response.Write "&nbsp;"
Response.Write rs2("Salgsdato")
Response.Write "<br>"

rs.MoveNext
count=count+1
Loop
%>

resultatet:

1 48756 20-12-2020
2 48807 03-02-2021
3 48832 07-02-2021
4 48867 14-02-2021
5 48988 22-02-2021
6 49012 01-03-2021
7 49034 04-03-2021
8 49065 07-03-2021
9 49090 12-03-2021
10 49128 21-03-2021
11 49184 06-04-2021
12 49222 12-04-2021
13 49258 18-04-2021
14 49283 21-04-2021
15 49314 25-04-2021
16 49352 30-04-2021
17 49396 09-05-2021
18 49447 17-05-2021
19 49453 20-05-2021
20 49496 24-05-2021
21 49561 18-07-2021
22 49570 26-07-2021
23 49581 01-08-2021
24 49591 06-08-2021
25 49621 16-08-2021
26 48591 20-11-2020
27 48642 30-11-2020
28 48695 06-12-2020
29 48731 13-12-2020
Avatar billede Monkeybrain Juniormester
09. juli 2022 - 14:08 #1
Hvad er det som ikke virker nu?
Avatar billede Monkeybrain Juniormester
09. juli 2022 - 14:09 #2
Er din salgsdato column angivet som dato-format?
Avatar billede elborg Novice
09. juli 2022 - 14:23 #3
Den sorterer ikke korrekt efter dato... Den er angivet efter dato format
Avatar billede erikjacobsen Ekspert
09. juli 2022 - 14:44 #4
Du opdeler i 2 forespørgsler, din query og query2 - dermed udelukker du at du kan sortere efter dato, for din query2 vil altid kun give een række.

Du kan sagtens gøre det i een forespørgsel (som også vil være hurtigere)
Avatar billede elborg Novice
09. juli 2022 - 16:02 #5
Altså én forespørgsel, men hvor der trækkes data fra begge databaser?
Avatar billede erikjacobsen Ekspert
09. juli 2022 - 16:54 #6
#5 Jeg har ikke mulighed for at lave dig en demo, men det bør være beskrevet her:  https://social.msdn.microsoft.com/Forums/office/en-US/c8f85e6e-b8c8-4437-a111-4cafbe5f7705/join-two-tables-residing-in-separate-access-dbs-in-one-sql-query-accessvba?forum=accessdev

Ellers så må det være noget med at hente id-er fra den første tabel til et array, og lave det til en streng som "[7,9,13]" og så " SalgID in [7,9,13] ORDER BY ..."

Og så kan man jo overveje om det skal være i 2 databaser?
Avatar billede elborg Novice
10. juli 2022 - 21:58 #7
denne virker:

Dim DBconn
Set DBconn = Server.CreateObject("ADODB.Connection")
DBconn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("Saelger.mdb")

Dim rs, query
Set rs = Server.CreateObject("ADODB.RecordSet")

query = "SELECT * FROM Saelger, [DATABASE=C:\Salg.mdb;].Salg WHERE Saelger.SalgID=Salg.SalgID AND SalgID.SaelgerID=3763 ORDER BY Salg.Salgsdato"

kan sti ændres så den henviser til server og ikke til lokal sti?
Avatar billede erikjacobsen Ekspert
10. juli 2022 - 22:14 #8
.mdb-filen skal vel ligge på serveren, men så bør du kunne bruge Server.MapPath sammen med & til at sammensætte forespørgslen.
Avatar billede elborg Novice
11. juli 2022 - 10:25 #9
query = "SELECT * FROM Saelger, [Server.MapPath("/log/Salg.mdb&");].Salg WHERE Saelger.SalgID=Salg.SalgID AND SalgID.SaelgerID=3763 ORDER BY Salg.Salgsdato"

kommer med fejl

Der opstod en Microsoft VBScript-kørselsfejl error '800a01c2'

Antallet af argumenter er forkert eller egenskabstildelingen er ugyldig: 'log'

/VersionTest/test.asp, line 9
Avatar billede erikjacobsen Ekspert
11. juli 2022 - 11:03 #10
query = "SELECT * FROM Saelger, [" & Server.MapPath("/log/Salg.mdb") & "].Salg WHERE Saelger.SalgID=Salg.SalgID AND SalgID.SaelgerID=3763 ORDER BY Salg.Salgsdato"

ikke testet
Avatar billede elborg Novice
11. juli 2022 - 18:24 #11
Fantastisk, det virker, tak Erik Jacobsen
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
Kurser inden for grundlæggende programmering

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