Rellenar Combobox con datos de una base de datos

ross_av
28 de Febrero del 2004
Hola, necesito saber cmo rellenar un combobox con datos de una tabla de una base de datos, tengo hecho lo siguiente, pero me muestra el combobox vaco ¿dnde est el error?
Muchas gracias.

<%
var SQL = ""
miconexion = new ActiveXObject("ADODB.Connection")
miconexion.Open ("XXXXX")
SQL = "SELECT * FROM MATERIAS"
ResultSet rs = miconexion.execute(SQL)
%>
<form name = "formulario2">
<center> <b> Materia: </b> <select name = "materia">
<option value = " "> </option>
<%while (!rs.Eof)
{
%>
<option value="<% = rs('NOMBRE_MATERIA') %>"> <% = rs('NOMBRE_MATERIA') %> </option>
<%
rs.MoveNext()
} %>
</select>
</center>

Muchas gracias.

cita
28 de Febrero del 2004
hola ross_av para serte sincera no entendi mucho tu codigo, pero te voy a pasar el que yo ocupo siempre

1.primero tu conecciona la base de datos.(como tu te quieras conectar)
2. preparas tu select y lo abres
(eje).
<%
sqlejemplo= "select * from dbo.CatalogoMaterias"
Ob_Rs.open sqlEjemplo
%>
3.aplico el siguiente codigo donde genero el objeto en una tabla y le inserto los datos: (eje.)

<table width="804" border="1" align="center" bordercolor="#888888">
<tr bordercolor="#CCCCCC">
<td bgcolor="#CCCCCC" colspan="2"> <center>Materia</center></td>
</tr>

<tr bordercolor="#CCCCCC">

<td height="28"> <center><select size="1" name="cbxEst">
<option>Ninguno</option>
<%
do until ob_Rs.EoF
%>
<option value="<%=Ob_Rs("Id_CAPcEstados")%>" ><%=Ob_Rs("CAPcEstados")%></option>
<%Ob_RS.Movenext
LOOP%>
</select></center>
<% Ob_Rs.Close %>

4. copia el pinto 2 y 3 , prueba como funciona y avisame, si tienes dudas , ¡¡¡¡ SUERTE!!!!

cita
28 de Febrero del 2004
NOTA!!!!!!!!!!!

1.- Ob_Rs es como yo acustumbro nombrar a mi objeto recordser
Ob_Conn es como llama a mi objeto coneccion

2.- al final del codigo tambien cierra tu coneccion
<%Ob_Conn.open%> si es que no hay mas combos adelante de lo contrario cierra la coneccion (Ob_Conn)hasta el final..

ross_av
28 de Febrero del 2004
Lo he probado pero me sale el recordset vaco as que mirar por si es la conexin lo que va mal.
Muchas gracias.

albertoarg
28 de Febrero del 2004
Te debe estar dando un error porque no estas cerrando el While con Loop, despues del MoveNext
Saludos
Alberto

albertoarg
28 de Febrero del 2004
PERDON

Digo LOOP si usas DO WHILE, en tu caso es WEND

ross_av
28 de Febrero del 2004
He cambiado todo lo que me habeis dicho y sigue sin funcionar. Ya no s ni qu probar.
Gracias.

FernandoC
28 de Febrero del 2004
Controla el posible error que se produce al abrir la BD o la tabla y el nmero de registros que tiene.
on error resume next

Set BD = Server.CreateObject("ADODB.Connection")
BD.Open .......
e=err.number
response.write(err(e).description)
Set r = Server.CreateObject("ADODB.Recordset")
r.cursortype=3
Set r = BD.Execute(sql)
e=err.number
response.write(err(e).description)
on error resume next

response.write("Nreg=" & r.recordcount)