Jag skriver ut en lista från en databas ungefär efter LeonLs beskrivning i denna tråden. Koden ser ut ungefärsåhär:
sql = "select * from medlemsregister order by usrEfternamn asc "
set rs = conndb1.execute(sql)
strPreviousLetter = ""
do until rs.eof
if uCase(left(rs("usrEfternamn"), 1)) <> strPreviousLetter then
strPreviousLetter = ucase(left(rs("usrEfternamn"), 1))
response.write("<b>" & strPreviousLetter & "</b><br />")
End If
response.write "<a href=""olle.asp?usrID="&rs("usrID")&""" >"&rs("usrEfternamn") &", "& rs("usrFornamn") &"</a><br />"
rs.movenext
Nu skulle jag vilja dela upp utskriften i tre kolumner, lista är inte statisk utan posterna som skall skriva ut kommer att öka i mängd.
jag vill skriva ut i denna ordningen. Skall man räkna igenom antalet poster och dela med tre och sedan bryta för ny kolumn där det procentuellt är en tredjedel?
Jag gjorde så att jag skriver ut A-I i kolumn ett, J-P i kolumn två Q-Ö i kolumn tre, såhär:
for j = 81 to 90
do while chr(j) = ucase(left(rs("usrEfternamn"), 1)) or chr(197) = ucase(left(rs("usrEfternamn"), 1)) or chr(196) = ucase(left(rs("usrEfternamn"), 1)) or chr(214) = ucase(left(rs("usrEfternamn"), 1))
det går ju jättebra tills jag skall skriva ut Ö.
då får jag felmeddelande: Undantag inträffade på do while raden...? Är den för lång?`Tar jag bort dom andra (ÅÄ) så skriver den inte ut ändå...
Jag börjar närma min min lösning nu. Men det stämmer inte riktigt i slutet på utskriften, den skriver ut till V (enkel v) sedan stoppar den? Mysko? Den borde ju skriva ut ända till Z. Vad kan det vara som går fel...? Hjälp mig! :(
Jag bifogar en bild på hur det ser ut när utskriften är klar. Såhär ser koden ut som skriver ut sista kolumnen:
1 strPreviousLetter = ""
2 for j = 82 to 90
3 'response.write chr(j) &" "& ucase(left(rs("usrEfternamn"), 1))
4 do while chr(j) = ucase(left(rs("usrEfternamn"), 1)) 'or chr(197) = ucase(left(rs("usrEfternamn"), 1)) or chr(196) = ucase(left(rs("usrEfternamn"), 1)) or
4 chr(214) = ucase(left(rs("usrEfternamn"), 1))
5
6 if rs("usrID") <> z then response.write "<br>"
7 z = rs("usrID")
8 if not q = rs("usrID") then
9 If UCase(Left(RS("usrEfternamn"), 1)) <> strPreviousLetter Then
10 strPreviousLetter = UCase(Left(RS("usrEfternamn"), 1))
11 Response.Write("<b>" & strPreviousLetter & "</b><br />")
12 End If
13 response.write "<span class=""style1"">" & rs("usrFornamn") &" "& rs("usrEfternamn") &" <b>"& ucase(left(rs("med_kategorier.usr_kategori"),1)) &"</b</span>"
14 else
15 response.write "<span class=""style1""><b>"& ucase(left(rs("med_kategorier.usr_kategori"),1)) &"</b></span>"
16 end if
17 q = rs("usrID")
18
19 rs.movenext
20 loop
21 next
SQLen som används ser ut såhär:
"SELECT"&_
" medlemsregister.*, med_origin.*, med_kategorier.*, *"&_
" FROM"&_
" ((medlemsregister INNER JOIN"&_
" med_origin ON medlemsregister.usrId = med_origin.usr_USRORIGIN)"&_
" LEFT OUTER JOIN"&_
" med_kategorier ON med_origin.usr_KATEGORI = med_kategorier.usr_KATID)"&_
" WHERE usrID <> "& dummy &" ORDER BY usrEfternamn ASC"
Felet berodde på att jag inte såg att det saknades relaterande poster i tabellen med_origin, och det beror på en dåligt ställd fråga mot databasen... Skall se om jag kan göra om den.
255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e