Avatar billede kristian21 Praktikant
26. juli 2010 - 11:46 Der er 5 kommentarer og
1 løsning

ASP, sql spørgsmål

Hej Eksperter.

Jeg har lavet følgende sql-sætning, for at trække ordrer fra webshop fra Access.

strSQL = "SELECT OrderID,OrderNumber,OrderCreatedDateTime,OrderCompletedDateTime,OrderBuyerName,OrderBuyerPhone,SUM(OrderProductPriceSum) AS sum FROM viewOrderProduct  WHERE OrderNumber > 100000 GROUP BY OrderID,OrderNumber,OrderCreatedDateTime,OrderCompletedDateTime,OrderBuyerName,OrderBuyerPhone"

Set rs = Conn.Execute(strSQL)


I udtrækket skal jeg også have vist et felt med DebitorID fra en anden access-database, hvor der også er et DebitorNR, som svarer til første databases OrderBuyerPhone.

Således at udtrækket bliver:

DebitorID, OrderID,OrderNumber,OrderCreatedDateTime,OrderCompletedDateTime,OrderBuyerName,OrderBuyerPhone,SUM(OrderProductPriceSum)

Kan dette lade sig gøre og evt hvordan? Derefter kan jeg nemlig udlæse alle ordrer til Sigma regnskabsprogram.

På forhånd tak.
Avatar billede The Real Yoda Juniormester
26. juli 2010 - 12:05 #1
du kunne jo loope alle dine ordre igennem, hvilket du jo gør efterhånden som de udskrives

og så baer lige inden hver ny linje

strSQL = "SELECT DebitorID from tabelnavn WHERE DebitorNR = '"&rs("OrderBuyerPhone")&"'"
Set rsDebitor = Conn.Execute(strSQL)
Avatar billede kristian21 Praktikant
26. juli 2010 - 12:39 #2
Tak for svaret.

Ville det så ikke blive lidt som dette, når det er fra 2 databaser?

Den laver en: fejl '80020009'


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../database/shop.mdb")
Conn.Open DSN

Set Con = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../database/sigma.dk.mdb")
Con.Open DSN


strSQL = "SELECT OrderID,OrderNumber,OrderCreatedDateTime,OrderCompletedDateTime,OrderBuyerName,OrderBuyerPhone,SUM(OrderProductPriceSum) AS sum FROM viewOrderProduct  WHERE OrderNumber > 100000 GROUP BY OrderID,OrderNumber,OrderCreatedDateTime,OrderCompletedDateTime,OrderBuyerName,OrderBuyerPhone"
Set rs = Conn.Execute(strSQL)


Do while not. rs.eoF

strSQL = "SELECT * from Debitor WHERE DebitorNR = '"&rs("OrderBuyerPhone")&"'"
Set rsDebitor = Con.Execute(strSQL)

Response.write ....

loop
Avatar billede kristian21 Praktikant
26. juli 2010 - 13:28 #3
Hmm. Prøvede at ændre lidt. Nu får jeg en:

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "DebitorNr = 00 11 22 33".

(nummeret eksisterer i db).

--------

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../database/shop.mdb")
Conn.Open DSN

Set Con = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../../database/Sigma.dk.mdb")
Con.Open DSN


strSQL = "SELECT OrderID,OrderNumber,OrderCreatedDateTime,OrderCompletedDateTime,OrderBuyerName,OrderBuyerPhone,SUM(OrderProductPriceSum) AS sum FROM viewOrderProduct  WHERE OrderNumber > 100000 GROUP BY OrderID,OrderNumber,OrderCreatedDateTime,OrderCompletedDateTime,OrderBuyerName,OrderBuyerPhone"
Set rs = Conn.Execute(strSQL)

DO

Set str = Con.Execute("Select * From Debitor Where DebitorNr = " & rs("OrderBuyerPhone") & "")
Set rsDebitor = Con.Execute(str)

loop
Avatar billede The Real Yoda Juniormester
26. juli 2010 - 13:53 #4
altså .. selve koden ser jo rigtigt nok ud ..

jeg gætter fejlen den kommer med i første eksempel er i linjen med :
strSQL = "SELECT * from Debitor WHERE DebitorNR = '"&rs("OrderBuyerPhone")&"'"

i så fald ku det tyde på at den ikke har selected feltet OrderBuyerPhone
Avatar billede kristian21 Praktikant
26. juli 2010 - 14:27 #5
Så virker det!

Du hjalp mig godt på vej. Jeg prøvede at smide en On Error Resume Next, og så kørte forslag 1. Jeg havde tilrettet nummeret, men efterfølgende nr. fejlede.

Smid et svar :-)
Avatar billede The Real Yoda Juniormester
26. juli 2010 - 14:33 #6
sådan der .. :)
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

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