come avevo detto prima, capisci la logica e ci metti 5 minuti (vabbeh, ce ne ho messi 10 lo ammetto)
provato con un numero paro/dispari di record su 4 colonne, e con un numero pari di record da 1 a 10 colonne
codice:
'******************************** SETTING
dim dbPath,num_colonne,campo,tabella
num_colonne=4
campo="Object_id"
tabella="objbase"
dbPath=server.MapPath("cms.mdb")
'******************************** END SETTING
'******************************** inizio codice
set conn=server.CreateObject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;" & "data source=" & dbPath
set rs=server.CreateObject("adodb.recordset")
SQL="select " & campo & " from " & tabella & " order by " & campo & " asc"
rs.open sql,conn,3,3
dim tot_record,sott
tot_record=rs.recordcount
if tot_record mod num_colonne=0 then
sott=0
record_per_colonna=int(tot_record/num_colonne)
else
sott=1
record_per_colonna=int(tot_record/num_colonne)+1
end if
response.Flush()
'STAMPO LA TABELLA
response.write "
<table cellpadding=""0"" cellspacing=""0"" border=""1"">"
for i=0 to record_per_colonna-1
response.write "<tr>"
'stampo le colonne
for k=0 to num_colonne-1
rs.movefirst
if i+(record_per_colonna*k)>(tot_record-sott) then
response.Write "<td width=""80""></td>"
else
rs.move(i+(record_per_colonna*k))
response.write "<td width=""80"">" & rs(0) & "</td>"
end if
next
response.write "</tr>"
next
response.write "</table>"
rs.close: set rs=nothing
conn.close: set conn=nothing
'********************************** fine codice
fammi sapere per eventuali problemi