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

Problema al pasar a "X" pagina desde Combo

Estas en el tema de Problema al pasar a "X" pagina desde Combo en el foro de ASP Clásico en Foros del Web. Tengo un Problema.. Genero un Combo, tomando una información de mi Base de Datos. Este es el código.: Cita: <% rs.MoveFirst %> <form action="Altausuarios/DatosUsuarios.asp"> <select ...
  #1 (permalink)  
Antiguo 21/09/2004, 08:33
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 23 años
Puntos: 0
Exclamación Problema al pasar a "X" pagina desde Combo

Tengo un Problema..

Genero un Combo, tomando una información de mi Base de Datos. Este es el código.:
Cita:
<% rs.MoveFirst %>
<form action="Altausuarios/DatosUsuarios.asp">
<select size="1" name="id" onChange="if(options[selectedIndex].value) document.forms[0].submit();">

<option>Mostrar Datos Completos de...</option>
<%while (NOT rs.EOF)%>
<option name="id" value="<%=rs("id")%>"><%=rs("nombre")%></option>

<%rs.movenext()
wend%>
</select>
Al ejecutarlo, me muestra perfectamente bien la información que necesito. Al darle click me manda a una página llamada DatosUsuarios.asp.
Este código me toma de la BD un valor, que yo lo llamo ID, el cual al ver el código fuente compruebo que si me esta funcionando bien.

Al seleccionar a un usuario, me pasa a la página DatosUsuarios.asp, generandome la siguiente dirección:
Como vera, me pasa el valor del ID a la siguiente página, pero...
.... en mi otra página quiero mostrar información relacionada con ese ID. Estoy intentando esto con el siguiente código:
Cita:
<%
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/usuarios.mdb") & "; Password=bonilla "
SQL="select * FROM " & _
"usuarios where [id] in( " & Request.Form("ID")&")"
set rs=oConn.Execute(SQL)
%>
Al ejecutar esta página ( DatosUsuarios.asp ) me manda el siguiente error:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta '[id] in( )'.
/web/admin/Altausuarios/DatosUsuarios.asp, line 13


Es decir, no me esta tomando el valor ID... pero en la direccion ( URL que me genera ) claramente se muestra que si me lo esta pasando.

Sugerencias Amigos???
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México

Última edición por AnonimoWL; 21/09/2004 a las 08:36
  #2 (permalink)  
Antiguo 21/09/2004, 08:59
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
Intenta con: SQL="select * FROM usuarios where id = " & Request.Form("ID")
en caso de que id sea numerico.

IN se utiliza principalmente para subconsultas, por ejemplo: SQL="select * FROM usuarios where [id] in (Select * from proveedores)

Saludos
  #3 (permalink)  
Antiguo 21/09/2004, 09:14
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 23 años
Puntos: 0
Gracias !!

pero fijate que me sigue enviando error

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'id ='.
/web/admin/Altausuarios/DatosUsuarios.asp, line 12


El "problema" sigue siendo que supuestamente no me esta pasando el valor de ID a la pagina de DatosUsuarios.asp .... pero lo raro es que en la dirección si le tiene asignado un valor al ID

Qué puede estarme dando este problema?

Ya cheque los nombres de los input's y sus valores, y todo esta bien !!
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México
  #4 (permalink)  
Antiguo 21/09/2004, 09:16
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
debes validar en el momento que haces el request.form("id") si esta vacio
id = request.form("id")
if id = "" then id = 0

de esta forma no te manda error... pero solo si viene en blanco
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #5 (permalink)  
Antiguo 21/09/2004, 09:24
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 23 años
Puntos: 0
Gracias Saruman !..

Intente validar, pero me manda el mismo error.... !!!...

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresión de consulta 'id ='.
/web/admin/Altausuarios/DatosUsuarios.asp, line 17


El código quedo asi:

Cita:
<%
Dim id
id = request.form("id")
if id = "" then
id = 0

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/usuarios.mdb") & "; Password=bonilla "
SQL="select * FROM usuarios where id = "& Request.Form("id")
set rs=oConn.Execute(SQL)
%>
Aquí de verdad no se que pueda estar pasando :(

Porque si le asigno un valor al ID directamente al código si me funciona
Cita:
SQL="select * FROM usuarios where id = "& 10
Saludos y Gracias !
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México
  #6 (permalink)  
Antiguo 21/09/2004, 09:30
Avatar de buliwyf  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 221
Antigüedad: 22 años, 5 meses
Puntos: 1
el problema esta en el tipo de formulario... segun vi tu pagina pasa el ID por querystring (...usuarios.asp?id=10) y tu estas armando el sql con request.form("id").


cambia eso por request.querystring("id") y te va a funcionar perfectamente.



cuentasnos como te fue
__________________
RTFM antes de preguntar...
  #7 (permalink)  
Antiguo 21/09/2004, 09:38
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 23 años
Puntos: 0
buliwyf !!!
Mil Gracias... ya me funciono..... es verdad, se me habia pasado ese detalle que mencionas.....

Ya me funciono perfectamente...

de nuevo gracias a tu y a los que me dieron sugerencias :)

Saludos
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México
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 23:50.