21. juli 2004 - 15:41Der 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 %>
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 ?
Synes godt om
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).
Synes godt om
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?
Synes godt om
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?
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
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 %>
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") %>
Synes godt om
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 %>
Kanon - virker perfekt. Tusind tak skal du have - og god ferie.
Synes godt om
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.