Avatar billede gommasch Nybegynder
21. juli 2004 - 15:41 Der er 9 kommentarer og
1 løsning

Flere loops men kun første loop med resultater vises.

Jeg har en side med flere loops. Problemet er, at kun første loop med resultat vises forstået på den måde, at skal begge loop's vise et resultat vises kun første loop's resultat.

Hvis kun nr. 2 loop har data som skal vises fås fint meldingen "Der er desværre ingen Kabinet opgraderinger." fra loop 1 og herefter form-knappen fra loop 2.
Hvis kun nr. 1 loop har data vises Kabinet-knappen fra loop 1 men der kommer ingen "Der er desværre ingen PSU opgraderinger." fra loop 2.
Det ser ud til loop'et stopper hvis der findes data, er der nogen som kan se problemet ? - Jeg skal iøvrigt have endnu flere loops på siden.

<%
detaljemenuKAB = rs("detaljemenuKAB")
prisKAB = rs("prisKAB")
if rs("DetaljemenuKAB") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Kabinet'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisKAB%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuKAB%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=choose VALUE='Kabinet'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else
response.write "Der er desværre ingen Kabinet opgraderinger."
%>

<%
detaljemenuPSU = rs("detaljemenuPSU")
prispsu = rs("prispsu")
if rs("DetaljemenuPSU") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='PSU'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisPSU%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuPSU%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=choose VALUE='Strømforsyning / PSU'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else
response.write "Der er desværre ingen PSU opgraderinger."
%>

<%end if%>
<%end if%>
Avatar billede gommasch Nybegynder
21. juli 2004 - 16:38 #1
Er det fordi den hopper til <% end if %> efter visning af data ?

Hvis jeg flytter <%end if%> op i bunden af hvert loop får jeg følgende fejlmeddelelse for loop 2:

ADODB.Field error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/configframe.asp, line 92

Vil det sige recordsettet er tomt ?
Avatar billede Slettet bruger
21. juli 2004 - 19:04 #2
Er det ikke fordi du i Loop 1 loop'er indtil rs.EOF?
Altså når den så når til Loop 2 er rs.EOF?

Du kunne gøre noget lignende det her:
strSQL = "Select * from tabel where etellerandet = 'noget'"
strSQL2 = "Select * from tabel where etellerandet = 'noget'"
Set rs = Conn.Execute(strSQL)
Set rs2 = Conn.Execute(strSQL2)

- og så bruge rs til det første loop, og rs2 til det andet loop.

Ellers hvis der er noget rs.MoveToStart (er der sikkert, men ved ikke hvad det hedder korrekt).
Avatar billede Slettet bruger
21. juli 2004 - 19:05 #3
Ellers kan du vel lave et loop:

Do
rs.MoveBack 'Det hedder det vel?
Loop While Not rs.BOF

- Eller bliver den så rs.BOF?
Avatar billede Slettet bruger
21. juli 2004 - 19:08 #4
Har fundet ud af at det hedder rs.MovePrevious

Altså:

Do
rs.MovePrevious
Loop While Not rs.BOF
rs.MoveNext ' Det skal du vel gøre for at den ikke bliver .BOF?
Avatar billede gommasch Nybegynder
21. juli 2004 - 20:09 #5
Skal jeg lave disse ?
strSQL = "Select * from tabel where etellerandet = 'noget'"
strSQL2 = "Select * from tabel where etellerandet = 'noget'"
Set rs = Conn.Execute(strSQL)
Set rs2 = Conn.Execute(strSQL2)

Og så bruge disse ?
Do
rs.MovePrevious
Loop While Not rs.BOF
rs.MoveNext
Avatar billede gommasch Nybegynder
21. juli 2004 - 22:03 #6
HM...det virker faktisk fint med:

strSQL = "Select * from tabel where etellerandet = 'noget'"
strSQL2 = "Select * from tabel where etellerandet = 'noget'"
Set rs = Conn.Execute(strSQL)
Set rs2 = Conn.Execute(strSQL2)

- men jeg får en fejl efter sidste loop:

ADODB.Recordset error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/configframe.asp, line 142

Får jeg ikke lukket loop'et ordentligt ?


<%
detaljemenuKAB = rsKAB("detaljemenuKAB")
prisKAB = rsKAB("prisKAB")
if rsKAB("DetaljemenuKAB") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' language='JavaScript' name='Kabinet'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisKAB%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuKAB%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=choose VALUE='Kabinet'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else
response.write "Der er desværre ingen Kabinet opgraderinger."
end if
%>

<p></p>

<%
detaljemenuPSU = rsPSU("detaljemenuPSU")
prispsu = rsPSU("prispsu")
if rsPSU("DetaljemenuPSU") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' language='JavaScript' name='PSU'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisPSU%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuPSU%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=choose VALUE='Strømforsyning / PSU'>
</form>

<%
rs.movenext
loop while not rs.eof
%>

<%else
response.write "Der er desværre ingen PSU opgraderinger."
end if
%>
Avatar billede Slettet bruger
21. juli 2004 - 22:45 #7
Kan du give mig hele din kode? - Også der hvor du opretter forbindelse til databasen...
Avatar billede gommasch Nybegynder
21. juli 2004 - 22:49 #8
Her er resten som står øverst:

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/hovedmenu.mdb")
Set myCon = Server.CreateObject("ADODB.Connection")
myCon.Open strDSN

Varenr = request.querystring("varenr")

SQL = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc,(SELECT secuID FROM config where config.varenr=produkter.varenr) AS secuID,(SELECT varenavn FROM produkter where config.varenr=produkter.varenr) AS varenavn FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE produkter.varenr=config.varenr)='www'"

SQLKAB = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc,(SELECT secuID FROM config where config.varenr=produkter.varenr) AS secuID,(SELECT varenavn FROM produkter where config.varenr=produkter.varenr) AS varenavn,(SELECT detaljemenu FROM produkter WHERE varenr=KAB) AS DetaljemenuKAB,(SELECT pris FROM produkter WHERE varenr=KAB) AS prisKAB FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE produkter.varenr=config.varenr)='www'"

SQLPSU = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc,(SELECT secuID FROM config where config.varenr=produkter.varenr) AS secuID,(SELECT varenavn FROM produkter where config.varenr=produkter.varenr) AS varenavn,(SELECT detaljemenu FROM produkter WHERE varenr=PSU) AS DetaljemenuPSU,(SELECT pris FROM produkter WHERE varenr=PSU) AS prisPSU FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE produkter.varenr=config.varenr)='www'"

SQLCPU2 = "SELECT (SELECT pris  FROM produkter where config.varenr=produkter.varenr) AS Prispc,(SELECT secuID FROM config where config.varenr=produkter.varenr) AS secuID,(SELECT varenavn FROM produkter where config.varenr=produkter.varenr) AS varenavn,(SELECT detaljemenu FROM produkter WHERE varenr=CPU2) AS DetaljemenuCPU2,(SELECT pris FROM produkter WHERE varenr=CPU2) AS prisCPU2 FROM Produkter INNER JOIN Config ON Produkter.Varenr=Config.Varenr WHERE Config.Varenr='" & varenr & "' AND (SELECT webstatus FROM produkter WHERE produkter.varenr=config.varenr)='www'"

Set rs = mycon.Execute(SQL)
Set rsKAB = mycon.Execute(SQLKAB)
Set rsPSU = mycon.Execute(SQLPSU)
Set rsCPU2 = mycon.Execute(SQLCPU2)

secuID=rs("secuID")
%>
Avatar billede Slettet bruger
22. juli 2004 - 00:16 #9
Den kode, som du skrev i din første post, tror jeg skal se sådan her ud:

<%
detaljemenuKAB = rsKAB("detaljemenuKAB")
prisKAB = rsKAB("prisKAB")
if rsKAB("DetaljemenuKAB") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Kabinet'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisKAB%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuKAB%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=choose VALUE='Kabinet'>
</form>

<%
rsKAB.movenext
loop while not rsKAB.eof
%>

<%else
response.write "Der er desværre ingen Kabinet opgraderinger."
end if
%>

<%
detaljemenuPSU = rsPSU("detaljemenuPSU")
prisPSU = rsPSU("prispsu")
if rsPSU("detaljemenuPSU") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='PSU'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=PrisPSU%>">
<input type='hidden' name='detaljemenu' value="<%=DetaljemenuPSU%>">
<input type='hidden' name='secuID' value="<%=SecuID%>">
<INPUT TYPE=submit NAME=choose VALUE='Strømforsyning / PSU'>
</form>

<%
rsPSU.movenext
loop while not rsPSU.eof
%>

<%else
response.write "Der er desværre ingen PSU opgraderinger."
%>

<%end if%>

Ellers så prøv med denne kode istedet:

<%
if rsKAB("DetaljemenuKAB") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='Kabinet'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=rsKAB("PrisKAB")%>">
<input type='hidden' name='detaljemenu' value="<%=rsKAB("DetaljemenuKAB")%>">
<input type='hidden' name='secuID' value="<%=rsKAB("SecuID")%>">
<INPUT TYPE=submit NAME=choose VALUE='Kabinet'>
</form>

<%
rsKAB.movenext
loop while not rsKAB.eof
%>

<%else
response.write "Der er desværre ingen Kabinet opgraderinger."
end if
%>

<%
if rsPSU("DetaljemenuPSU") <> "" then
do
%>

<form method='GET' action='prodframeupg.asp' target='_self' onsubmit='return FrontPage_Form2_Validator(this)' language='JavaScript' name='PSU'>
<p align='left'><font size=2 face='Verdana, Arial, Helvetica, sans-serif'>
<input type='hidden' name='prisx' value="<%=rsPSU("PrisPSU")%>">
<input type='hidden' name='detaljemenu' value="<%=rsPSU("DetaljemenuPSU")%>">
<input type='hidden' name='secuID' value="<%=rsPSU("SecuID")%>">
<INPUT TYPE=submit NAME=choose VALUE='Strømforsyning / PSU'>
</form>

<%
rsPSU.movenext
loop while not rsPSU.eof
%>

<%else
response.write "Der er desværre ingen PSU opgraderinger."
%>

<%end if%>

Tager på ferie fredag, så hvis dette ikke hjælper, kan jeg ikke hjælpe...
Avatar billede gommasch Nybegynder
22. juli 2004 - 01:01 #10
Kanon - virker perfekt. Tusind tak skal du have - og god ferie.
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