Hola,
tienes que meter todos los datos de ambas tablas en un array. (Obviamente, si son muchos registros, no podrías hacerlo así, sino con dos páginas).
Por ejemplo, este es el codigo para una relacion entre dos select, uno de Centro y otro de Departamento basado en el Centro.:
Código:
<script language="vbscript">
<%
strSQL = "SELECT Distinct SiteName, DeptName FROM Departamentos order by SiteName, DeptName"
Ob_RS.Open strSQL, Ob_Conn, adOpenStatic
%>
Dim SiteDept (<%= Ob_RS.RecordCount %>, 2)
<%
i = 1
while not Ob_RS.EOF
%>
SiteDept(<%= i %>, 1) = "<%= Ob_RS(0) %>"
SiteDept(<%= i %>, 2) = "<%= Ob_RS(1) %>"
<% Ob_RS.MoveNext
i = i + 1
Wend
Ob_RS.Close
%>
</script>
Ya tenemos los datos de centros y departamentos en memoria.
Ahora hay que programar los select para que al cambiar el valor de uno cargue los datos en el otro.
Para eso, creamos una funcion en vbscript que será la que llamemos en el evento onchange del select.
Código:
<script>
Function FillDept()
center = document.NewI.center.options(document.NewI.center.selectedIndex).value
document.NewI.department.options.length = 1
document.NewI.department.options(0).value = 0
document.NewI.department.options(0).innertext = "-------"
for i = 1 to UBound(SiteDept, 1)
if (SiteDept(i, 1) = center ) then
document.NewI.department.options.length = document.NewI.department.options.length + 1
document.NewI.department.options(document.NewI.department.options.length - 1).value = SiteDept(i, 2)
document.NewI.department.options(document.NewI.department.options.length - 1).InnerText = SiteDept(i, 2)
end if
next
End Function
</script>
Ahora, en el evento onchange del select llamamos a la función que hemos creado.
Código:
<select name='center' onchange='fillDept()'>
Con esto ya te funcionaría. Las options de los select las puedes recuperar del array, así no tienes que volver a acceder a la bd.
Un saludo.