07. april 2003 - 10:39
Der er
12 kommentarer og 1 løsning
recordset sorteret i kolonner?
Følgende kode sorterer et recordset i rækker: while not rs.eof x = x + 1 if x mod 7 = 1 then response.write "<tr width='33%'>" end if response.write "<td>bla bla</td>" if x mod 7 = 0 then response.write "</tr>" response.write "<tr><td>bla bla </td></tr>" end if rs.MoveNext wend Men hvordan får man et recordset sat op i en tabel, hvor posterne er sorteret i kolonner? Altså nedad?
Annonceindlæg fra Barco
07. april 2003 - 12:40
#1
læg posterne i variabler med et linieskift efter hvert felt. er desværre ikke så hård til VB at jeg lige kan gøre det for dig :o)
07. april 2003 - 14:13
#2
response.write("<table">) while not rs.eof response.write("<tr>") response.write("<td>"& Rs(0) &"</td>") response.write("<td>"& Rs(1) &"</td>") response.write("</tr>") rs.movenext wend response.write("</table>") er det dette du mener?
07. april 2003 - 14:48
#3
Nej, umiddelbart ikke... Det skal være dette: <table> <tr><td>post 1</td><td>post 3</td><td>post 5</td></tr> <tr><td>post 2</td><td>post 4</td><td>post 6</td></tr> </table>
07. april 2003 - 14:59
#4
er der altid kun 6 poster?
07. april 2003 - 15:08
#5
Næ, nej - der kan være uendeligt mange, så at sige. Jeg vil gerne kunne bestemme, hvor mange kolonner posterne skal sprede sig over..
07. april 2003 - 18:27
#6
07. april 2003 - 20:52
#7
Jeg skal ærlig indrømme, at jeg ikke helt er med på, hvad der foregår :-) Men til nedenstående kode får jeg denne fejlmeddelelse: Microsoft VBScript runtime error '800a0009' Subscript out of range: '[number: 1]' ....og så henvises til linie 47, som er "DisplayName = minFelt(1, RowCounter + ColCounter * NumRows-1) & " " & minFelt(2, RowCounter + ColCounter * NumRows-1)" Jeg viser her den kode, som jeg arbejder med nu: <%@ Language=VBScript %> <% Option Explicit %> <% response.buffer=true %> <% dim DSN, oRs, oConn, strSQL, minFelt, colcounter, NumRecords, NumRows, DisplayName, RowCounter Const NumColumns = 2 Set oConn = Server.CreateObject("ADODB.Connection") DSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../../../database.mdb") oConn.Open DSN strSQL = "Select Navn from Medarbejdere" Set oRs = oConn.Execute(strSQL) minFelt = oRs.GetRows oRs.close set oRs = nothing oConn.close set oConn=nothing%> <table ALIGN="CENTER" BORDER="1" CELLPADDING="1"CELLSPACING="1"> <THEAD> <tr> <%For colcounter = 1 to NumColumns %> <th>xxxxx</th> <th>yyyyy</th> <%next%> </tr> </THEAD> <% NumRecords = ubound(minFelt,2) + 1 if NumRecords mod NumColumns = 0 then NumRows = NumRecords\NumColumns Else NumRows = NumRecords\NumColumns+1 End if For RowCounter = 1 to NumRows For ColCounter = 0 to NumColumns-1 if RowCounter + ColCounter * NumRows <= NumRecords then DisplayName = minFelt(1, RowCounter + ColCounter * NumRows-1) & " " & minFelt(2, RowCounter + ColCounter * NumRows-1) response.write "<td>"& Displayname &"</td><td>" & minFelt(3,RowCounter + ColCounter * NumRows-1) & "</td>" Else Response.write "<td> </td><td> </td>" End if Next response.write "</tr>" Next%> </table>
07. april 2003 - 21:29
#8
det er fordi du har valgt 2 colonner fra din tabel: Const NumColumns = 2 Men i din SQL sætning vælger du kun en kolonne nemlig navn. Så du skal vælge mindst 2 fra din tabel.
07. april 2003 - 21:32
#9
Med... strSQL = "Select Navn,Email from Medarbejdere" ...melder siden stadig: Microsoft VBScript runtime error '800a0009' Subscript out of range: '[number: 2]'
07. april 2003 - 21:35
#10
Ok, skriv: strSQL = "Select * from Medarbejdere"
07. april 2003 - 21:39
#11
Og dér var der hul igennem!
07. april 2003 - 22:40
#12
Nu har jeg puslet lidt med det, og det virker BARE GODT! Tak Hossein!
07. april 2003 - 22:41
#13
selv tak!
Kurser inden for grundlæggende programmering