12. februar 2005 - 20:33Der er
10 kommentarer og 1 løsning
loop der ikke virker
Det jeg vil have ud af følgende kode, er at den skal loope igennem de 31 felter (jeg ved der er) og udskrive det der står i de enkelte felter. Mit loop virker bare ikke som det skal. Jeg får godt nok skrevet det første felt ud (altså felt 01) - men de efterfølgende kommer bare ikke - hvad er galt?
<% OpenCon call ChooseTableWhere ("Kalender", "ID", smaaned) if smaaned = 1 then mdr = "Januar" end if if smaaned = 2 then mdr = "Februar" end if if smaaned = 3 then mdr = "Marts" end if if smaaned = 4 then mdr = "April" end if if smaaned = 5 then mdr = "Maj" end if if smaaned = 6 then mdr = "Juni" end if if smaaned = 7 then mdr = "Juli" end if if smaaned = 8 then mdr = "August" end if if smaaned = 9 then mdr = "September" end if if smaaned = 10 then mdr = "Oktober" end if if smaaned = 11 then mdr = "November" end if if smaaned = 12 then mdr = "December" end if response.write rs.fields(2) response.write "<table align=""center"" width=""50%"" border=3><tr><td colspan=""2"" align=""center""><b>" response.write mdr response.write "</b></td></tr>" i = 1
do while not rs.eof
response.write "<tr><td width=""15%"">" response.write i response.write ". " response.write mdr response.write "</td><td width=""35%"">" response.write rs.Fields(i) response.write "</td></tr>" i = i + 1 rs.MoveNext loop response.write i
Det kan jeg da godt - men bestemt ikke den, det er galt med - for laver jeg en response.write rs.fields(02) eller for den sags skyld rs.fields(27) istedet for - får jeg det korrekt ud *SS*
'Vælger tabel med Where og Like Sub ChooseTableWhere(sTable,sWhere,sLike) set rs=Server.CreateObject("ADODB.recordset") sqlstmt = "SELECT * FROM " & stable & " Where " & sWhere & " Like '" & sLike & "'" rs.open sqlstmt, connectme, adOpenStatic, adLockOptimistic End Sub
Næh, det har du da ret i. Når jeg læser dit spm. igen kan jeg godt se det.
Så det må være fordi du ikke itererer igennem fields-collection, men kun igennem row-collection. Du skal lave et loop inde i det loop du allerede har lavet. Noget i stil med dette:
do while not rs.eof for i = 1 to rs.fields.count response.write "<tr><td width=""15%"">" response.write i response.write ". " response.write mdr response.write "</td><td width=""35%"">" response.write rs.Fields(i) response.write "</td></tr>" next rs.MoveNext loop
Fields collection bliver nummereret fra 0, mens Count variablen indeholder antallet af felter (hvilket vil sige, at den tæller fra 1), hvilket kan være lidt forvirrende.
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.