Pues por lo que entiendo esta fácil. Los pasos serían.
1) Recibes el select y lo ejecutas.
En este punto tienes dos caminos, utilizar el RecordSet o vaciar el contenido en una arreglo con GetRows. Suponiendo que selecciones el primero.
2) Detectas cuantas columnas genero por medio de un RecordSet.Fields.Count
3) Formas la tabla.
El cóodigo podría quedar así:
Código:
.....
creas objetos y ejecutas la consulta
.....
<TABLE BORDER="1"><tr>
<%
for I=0 to rs.Fields.Count-1
Response.Write("<TD>"&rs.Fields(I).Name&"</TD>")
next
do until rs.EOF
Response.Write("<TR>")
for I=0 to rs.Fields.Count-1
Response.Write("<TD>"&rs.Fields(I)&"</TD>")
next
rs.MoveNext
loop
rs.Close
%>
</TABLE>
Saludos