Foros del Web » Programando para Internet » ASP Clásico »

Cargar registros de una tabla en un Select Box Múltiple

Estas en el tema de Cargar registros de una tabla en un Select Box Múltiple en el foro de ASP Clásico en Foros del Web. Hola, que tal, Estoy haciendo una funcion que cargue los registros de una tabla que contiene una serie de categorias dentro de una lista de ...
  #1 (permalink)  
Antiguo 30/08/2005, 01:58
 
Fecha de Ingreso: noviembre-2004
Mensajes: 117
Antigüedad: 19 años, 7 meses
Puntos: 0
Cargar registros de una tabla en un Select Box Múltiple

Hola, que tal,

Estoy haciendo una funcion que cargue los registros de una tabla que contiene una serie de categorias dentro de una lista de selección multiple y quiero que marque también las categorias que haya seleccionado previamente un usuario. Esta relación esta contenida en otra tabla de la base de datos por lo que me obliga a anidar dos recordsets.

He probado las sentencias SQL pero estan bien, parece ser mas bien algun tipo de bloqueo, pero tambien probé con todas las combinaciones posibles y siempre me devuelve este error



Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1
control/includes/Ajmlib.asp, línea 105




El error es en esta linea

Set rsC = oConn.Execute("SELECT * FROM " & tablaAux & " WHERE IDUsuario=" & idusuario & " AND IDModulo=" & rs1(campo_id) & " ORDER BY " & campo_nombre & " DESC;")


Código PHP:
 Dim rs1 
 Dim strSQL
 Dim rsC
 Dim strSQLC
 Set rs1 
oConn.Execute("SELECT * FROM " tabla " ORDER BY " campo_nombre " DESC;")
 
Response.Write "<select name=""" nombre """ multiple size=""" max """ id=""" nombre """ class=""input"">"
 
While NOT rs1.EOF
  Response
.Write "<option "
  
Set rsC oConn.Execute("SELECT * FROM " tablaAux " WHERE IDUsuario=" idusuario " AND IDModulo=" rs1(campo_id) & " ORDER BY " campo_nombre " DESC;")       
   If 
Not rsC.EOF Then
   Response
.Write " SELECTED "
  
End If
  
rsC.Close
  Set rsC
=Nothing
  Response
.Write "value=""" rs1(campo_id) & """>" rs1(campo_nombre) & "</option>"
  
rs1.MoveNext
 Wend
 rs1
.Close
 Response
.Write "</select>" 


¿Alguien puede darme una idea?

Mil gracias
__________________
Saludos a todos ;)

Fiat en Malaga
.. y ahora con CSS!
  #2 (permalink)  
Antiguo 30/08/2005, 07:27
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Microsoft][Controlador ODBC Microsoft Access] Pocos parámetros. Se esperaba 1
control/includes/Ajmlib.asp, línea 105

mmm, a ver......, necesitariamos ver el resultado de la expresión sql de la linea que da el error
sql = "SELECT * FROM " & tablaAux & " WHERE IDUsuario=" & idusuario & " AND IDModulo=" & rs1(campo_id) & " ORDER BY " & campo_nombre & " DESC;"
response.write sql
response.end

Set rsC = oConn.Execute(sql)

Lo más seguro es que alguna de las variables no tenga el valor esperado, sospecho que será: campo_nombre
  #3 (permalink)  
Antiguo 30/08/2005, 11:07
 
Fecha de Ingreso: noviembre-2004
Mensajes: 117
Antigüedad: 19 años, 7 meses
Puntos: 0
El resultado del 'response.write sql' es:

SELECT * FROM Tbl_ModulosAux WHERE IDUsuario=41 AND IDModulo=47 ORDER BY Nombre DESC;

Ya comprobé ambas antes de postear este tema, llevo algunos días dándole vueltas. Tiene que ser algo relacionado con algun tipo de bloqueo. Las tablas estan relacionadas y he probado extrayendo el recordset anidado y funciona perfectamente, pero si le coloco el recordset interior da error.

Me es necesario porque este proc lo uso dentro de la edición de un usuario para asignarle categorias, y necesito cargar las que se seleccionaron anteriormente en el momento de mostrar la ficha para editar.

Gracias :)
__________________
Saludos a todos ;)

Fiat en Malaga
.. y ahora con CSS!
  #4 (permalink)  
Antiguo 31/08/2005, 11:19
 
Fecha de Ingreso: noviembre-2004
Mensajes: 117
Antigüedad: 19 años, 7 meses
Puntos: 0
nadie puede darme alguna idea? :(
__________________
Saludos a todos ;)

Fiat en Malaga
.. y ahora con CSS!
  #5 (permalink)  
Antiguo 31/08/2005, 11:50
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 19 años
Puntos: 0
Segun mi experiencia los mas seguro es que alguno de los nombres de los campos no esten bien escritos en la sentencia Sql, verifica toda la sentencia, por eso te recomiendo usar lo que ya mencionaron...

Response.Write sql
Response.End

esto antes de abrir el recordSet,para que no marque un error o de la siguiente manera, pero no la recomiendo ya que aparentemente a veces hace parecer que la pagina funciona


Response.Write sql
ON ERROR RESUME NEXT
miTabla.Open sql, cnn, 2, 3, 1
  #6 (permalink)  
Antiguo 01/09/2005, 02:01
 
Fecha de Ingreso: noviembre-2004
Mensajes: 117
Antigüedad: 19 años, 7 meses
Puntos: 0
Las variables se pasan bien y las sentencias sql como ya he dicho se generan bien con dichas variables.


Si uso el ON ERROR RESUME NEXT genera bien el multipleselect pero no da el resultado correctamente (selecciona todo).

Pero sigue sin funcionar como debiera.... me va a volver loco esto...
__________________
Saludos a todos ;)

Fiat en Malaga
.. y ahora con CSS!
  #7 (permalink)  
Antiguo 01/09/2005, 06:34
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
mmmmmm, el error de "Pocos parámetros. Se esperaba 1" nunca había visto que ocurriera por causas diferentes a que se ha escrito mal una consulta SQL.

Yo lo que haría es intentar cambiar las formas de trabajar en este caso. Por ejemplo:

Código:
Set rs1 = oConn.Execute("SELECT * FROM " & tabla & " ORDER BY " & campo_nombre & " DESC;")
While NOT rs1.EOF 
.....
Se puede cambiar por
Código:
set rs1= Server.CreateObject("adodb.recordset")
vSQL = "SELECT * FROM " & tabla & " ORDER BY " & campo_nombre & " DESC;"
rs1.Open vSQL, oConn, 3,3
'Incluso, aquí podrías hacer un:
Matriz = rs1.GetRows
rs1.close
set rs1 = nothing
For i=0 To UBound(Matriz,2)
  ....
Pueba Nono y nos dices
  #8 (permalink)  
Antiguo 02/09/2005, 05:45
 
Fecha de Ingreso: noviembre-2004
Mensajes: 117
Antigüedad: 19 años, 7 meses
Puntos: 0
Interesante.. pruebo y os digo
__________________
Saludos a todos ;)

Fiat en Malaga
.. y ahora con CSS!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:23.