Avatar billede thomas-k Nybegynder
25. november 2007 - 15:30 Der er 10 kommentarer og
1 løsning

Loop i loop

Jeg kører nedenstående loops. Nu vil jeg gerne have at disse loops bliver til én, ud fra et overordnet loop som kigger i en anden tabel efter overskrifter. Det er for at kunne lave en select sætning som spørger ud fra hvilket overordnet loop man befinder sig i. Lyder i sig selv lidt kryptisk men håber i forstår. I det overordnede loop skal den kigge i en anden tabel, hvor jeg har skrevet første, anden og tredje. Således ser mit script ud nu:


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/databasen.mdb")
Conn.Open DSN
strSQL = "Select * From tabel where kolonne ='første'"
Set rs = Conn.Execute(strSQL)
Do While Not rs.EOF
response.write ("link")
rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/databasen.mdb")
Conn.Open DSN
strSQL = "Select * From tabel where kolonne ='anden'"
Set rs = Conn.Execute(strSQL)
Do While Not rs.EOF
response.write ("link")
rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/databasen.mdb")
Conn.Open DSN
strSQL = "Select * From tabel where kolonne ='tredje'"
Set rs = Conn.Execute(strSQL)
Do While Not rs.EOF
response.write ("link")
rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing


- men jeg vil gerne have det til at se således ud (hvilket selvfølgelig ikke virker på mit gebrokken asp sprog):



Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/databasen.mdb")
Conn.Open DSN
strSQL = "Select * From tabel1 where kolonne <> ''"
Set rs = Conn.Execute(strSQL)
Do While Not rs.EOF

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/databasen.mdb")
Conn.Open DSN
strSQL = "Select * From tabel2 where kolonne ='tabel1 fra det overordnede loop'"
Set rs = Conn.Execute(strSQL)
Do While Not rs.EOF
response.write ("link")
rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing

rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing
Avatar billede w13 Novice
25. november 2007 - 15:35 #1
Lad være med at åbne databasen anden gang. Den er jo allerede åben. Så ret lige til:

Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/vti_log/databasen.mdb")
Set rs=Conn.Execute("Select * From tabel1 where kolonne<>''")
Do While Not rs.EOF
  Set rs2=Conn.Execute("Select * From tabel2 where kolonne='"&rs("col")&"'")
  Do While Not rs2.EOF
    Response.Write rs("link")
    rs2.MoveNext
  Loop
  Set rs1.Close
  rs.MoveNext
Loop
Conn.Close
Set Conn=Nothing

Så skal du bare lige rette databaseinformationerne.
Avatar billede thomas-k Nybegynder
25. november 2007 - 15:43 #2
Jeg får denne fejl:

Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F3)
Tegnet '=' var ventet
/links.asp, line 29, column 13
Set rs1.Close
------------^

- er "col" et reserveret ord, eller hvorledes tjekker man op imod select tabel1 sætningen?
Avatar billede w13 Novice
25. november 2007 - 15:54 #3
Nå ja, fjern "Set " fra den linje, fejlen angiver.

Du skal selvfølgelig rette "col" til den kolonne du vil tjekke på fra første tabel.
Avatar billede thomas-k Nybegynder
25. november 2007 - 16:15 #4
Nu får jeg dette i stedet:

Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'rs1'
Avatar billede thomas-k Nybegynder
25. november 2007 - 16:30 #5
det må være rs2 ikk?
Avatar billede w13 Novice
25. november 2007 - 16:34 #6
Jup, lige præcis. =)
Avatar billede thomas-k Nybegynder
25. november 2007 - 16:36 #7
Yes, kan også få det til at spille nu, men jeg kan desværre kun udskrive ting fra tabel 1 og ikke tabel 2?
Avatar billede w13 Novice
25. november 2007 - 17:06 #8
Brug rs2("noget") i stedet for rs("noget"), når du skal udskrive fra tabel2.
Avatar billede thomas-k Nybegynder
25. november 2007 - 17:09 #9
ahhh, selvfølgelig... Takker for din store hjælp (hvis du lige smider et svar).
Avatar billede w13 Novice
25. november 2007 - 17:20 #10
Det gør jeg. =)
Avatar billede w13 Novice
25. november 2007 - 18:51 #11
Tak for point!
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