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

Problema con ID y request.Form

Estas en el tema de Problema con ID y request.Form en el foro de ASP Clásico en Foros del Web. Tengo un problema con un ID de mi BD y un Request. Form. En Index.asp tengo estas lineas: 'Conexión con BD .. .. <% while ...
  #1 (permalink)  
Antiguo 08/02/2003, 10:08
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 24 años
Puntos: 0
Problema con ID y request.Form

Tengo un problema con un ID de mi BD y un Request. Form.

En Index.asp tengo estas lineas:

'Conexión con BD
..
..
<% while (NOT Rs.eof) %>
<input type="hidden" name="id" value="<%=Rs("id")%>">
<% Rs.movenext()
Wend %>
..
..

Con esto logicamente me genera un ciclo hasta que ya no haya registros, esto me genera algo como esto:

<input type="hidden" name="id" value="1">
<input type="hidden" name="id" value="2">
<input type="hidden" name="id" value="3">
etc..
etc...


cuando paso a otra página quiero recoger el valor del ID.

en modificar.asp tengo mi conexion a la BD asi:

<%
dim variable
id=Request.Form("id")

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../ruta/archivo.mdb") & "; Password=bonilla "
SQL="SELECT id FROM " & _
"ventas where [id] = " & id

set rs=oConn.Execute(SQL) %>

y me genera el siguiente error:

[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (coma) en la expresión de consulta '[id] = 1,2,3.

/ruta/mi_archivo/modificar.asp, line 19

En qué puedo estar mal?

ya intente quitarle las comillas ( en el ciclo ).. y aun asi me genera error ...

Me explico?...

Qué pasa?

Saludos
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México
  #2 (permalink)  
Antiguo 08/02/2003, 11:57
 
Fecha de Ingreso: mayo-2001
Mensajes: 87
Antigüedad: 24 años
Puntos: 0
El error que marca lo dice todo.

el cambo id te esta mandando la cadena 1,2,3,4,5 .....

podrias recojerlo asi:


cadena=Split(id," ,")
For i =0 to Ubound(cadena)

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../ruta/archivo.mdb") & "; Password=bonilla "
SQL="SELECT id FROM " & _
"ventas where [id] = " & Cadena(i)

set rs=oConn.Execute(SQL)


Next
  #3 (permalink)  
Antiguo 10/02/2003, 07:54
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 24 años
Puntos: 0
Oye, WebPeladre, Gracias, me funciono bien !!!...

Solo una duda mas....
Cuando trato de recojer un valor de algún campo de la BD, me manda este error:


Error de Microsoft VBScript en tiempo de ejecución error '800a000d'

No coinciden los tipos: 'rs'



y trato de recojer los valores de la siguienta manera:

<font size="2" face="Arial" color="#003366"><%=rs("ApellidoP")%></font>

Ya cheque en la BD y todo esta bien, en mi código aparte del campo ID, le agregue que seleccionara también los campos que utiizare y nada !!...
Que pena.. pero.... hechame la mano


Gracias !!!

Owen
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México
  #4 (permalink)  
Antiguo 10/02/2003, 10:41
 
Fecha de Ingreso: mayo-2001
Mensajes: 87
Antigüedad: 24 años
Puntos: 0
Podrias poner un porquito más de codigo desde que haces la conexion hasta donde la cierras algo asi, para ver, porque asi por lo que pusiste debieran de mostrarte los datos , aun que ese tipo de error si más no recuerdo es cuando intentas mostrar un campo que no existe.

pero mejor poestea más codigo, porque yo no le pego mucho a ASP y entre todos aqui nos ayudamos
  #5 (permalink)  
Antiguo 10/02/2003, 11:58
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 24 años
Puntos: 0
Exclamación No me gusta poner aqui todo mi código, pero... en esta situacion si lo hare jiji

<%Language=VBScript%>

<%
Response.AddHeader "Pragma", "no-cache"
Response.Expires = 0
%>

<%

cadena=Split(ID," ,")
For i =0 to Ubound(cadena)

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/acceso.mdb") & "; Password=bonilla "
SQL="SELECT * FROM " & _
"ventas where [ID] = " & Cadena(i)

set rs=oConn.Execute(SQL)


Next

%>



<html>

<head>
<meta http-equiv="Content-Language" content="es-mx">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Pagina nueva 1</title>
</head>

<body bgcolor="#F7F7F7">

<div align="center">
<center>
<table border="0" style="border-collapse: collapse" bordercolor="#111111" width="86%" id="AutoNumber1">
<tr>
<td width="100%">
<p align="center"><b><font face="Arial" size="2" color="#003366">Aquí solo
podrás modificar el campo de PAGO de Disquette; sí ya fue pagado, favor de
agregarle un SI.</font></b></td>
</tr>
<tr>
<td width="100%"><hr color="#800000" size="1"></td>
</tr>


<form method="POST" action="modificarOK.asp">

<tr>
<td width="100%">
<div align="center">
<center>
<table border="1" style="border-collapse: collapse" bordercolor="#003366" width="100%" id="AutoNumber2" height="43">
<tr>
<td width="14%" align="center" height="19">
<font face="Arial" color="#790000" size="2"><b>Apellido Paterno</b></font></td>
</tr>
<tr>
<td width="14%" height="19"><b>
<font size="2" face="Arial" color="#003366"><%=rs("Apellidop")%></font></b></td>
</tr>


Aqui termina las donde quiero mostrar, claro, eran mas pero le resumi...

cheque la BD y el campo si existe.

Saludos, Gracias

Owen
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México
  #6 (permalink)  
Antiguo 10/02/2003, 12:05
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 23 años, 4 meses
Puntos: 1
Bueno pa empezar ahi te va optimizado:


SQL="SELECT id FROM " & _
"ventas where [id] in( " & id&")"

Y ya quitas el for y todo eso.

Saludos
  #7 (permalink)  
Antiguo 10/02/2003, 13:19
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 24 años
Puntos: 0
Gracias UrJose.... Tiempo sin verte

Pues ya pus emi codigo, espero alguien me explique que onda con ese error, ya que se me hace muy raro.

Saludos y gracias
__________________
Luis Gerardo Soto Bonilla
[email protected]
Monterrey, Nuevo León
México
  #8 (permalink)  
Antiguo 10/02/2003, 14:26
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 24 años
Puntos: 0
Exclamación mmmm...........

me acabo de dar cuenta que mi página anterior la que me envia el valor no envia nada

pagina_1.asp

<%
Response.AddHeader "Pragma", "no-cache"
Response.Expires = 0
%>

<%

dim variable
Variable="No"

'Para los redireccionamientos
Response.Buffer=True

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/acceso.mdb") & "; Password=bonilla "
SQL="SELECT id, grado, seccion, CC, fecha, nombre, apellidop, apellidom, pago FROM " & _
"ventas WHERE (Pago='"&variable&"') ORDER By apellidop;"

set rs=oConn.Execute(SQL) %>



<html>
<head>
<title>Formulario</title>
</head>
<form method="post" action="pagina_2.asp">

<table>
<tr>
<td width="16%" align="center" height="19">
<font face="Arial" color="#790000" size="2"><b>Apellido Paterno</b></font></td>
</tr>
<% while (NOT Rs.eof) %>
<tr>
<td width="3%" height="19">

<p><input type="radio" value="<%=Rs("id")%>" name="id"></p>



</td>
<td width="16%" height="19"><b>
<font size="2" face="Arial" color="#003366"><%=Rs("APELLIDOP")%>></b></td>
</tr>
<% Rs.movenext()
Wend %>

</table>
</form>
</body>

</html>


=============================================
Pagina2_asp ( la que me Recoje el valor )

<%Language=VBScript%>

<%
Response.AddHeader "Pragma", "no-cache"
Response.Expires = 0
%>

<%

cadena=Split(id," ,")
For i =0 to Ubound(cadena)

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/acceso.mdb") & "; Password=bonilla "
SQL="SELECT id, apellidop, apellidom, nombre, grado, seccion, cc, fecha, pago FROM " & _
"ventas where [id] in( " & id&")"



set rs=oConn.Execute(SQL)


Next

response.Write ""& id &""
%>


Ya no agrego lo demas del código, porque aqui al final de la linea pongo un Response.Write y no m elo muestra, no me muestra nada, y ... pues no recoge ningun valor...

Qué hago mal?

Saludos

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

Última edición por AnonimoWL; 10/02/2003 a las 14:28
  #9 (permalink)  
Antiguo 10/02/2003, 14:29
Avatar de urjose  
Fecha de Ingreso: diciembre-2001
Mensajes: 5.286
Antigüedad: 23 años, 4 meses
Puntos: 1
Punto 1

1.- En la primera pagina envias el valor por un radio pero yo no veo ningun boton submit

2.- En la segunda pagina debes recoger con Request.Form("id") no solo id

y 3.- te dije que quitaras el For


<%

set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/acceso.mdb") & "; Password=bonilla "
SQL="SELECT id, apellidop, apellidom, nombre, grado, seccion, cc, fecha, pago FROM " & _
"ventas where [id] in( " & Request.Form("id")&")"



set rs=oConn.Execute(SQL)
  #10 (permalink)  
Antiguo 10/02/2003, 16:13
 
Fecha de Ingreso: mayo-2001
Mensajes: 87
Antigüedad: 24 años
Puntos: 0
Urjose

SQL="SELECT id FROM " & _
"ventas where [id] in( " & id&")"

que buena IN medio ahorro de code
Todos los dias se aprende algo nuevo


Owen-Bonilla


en pagina_1.asp creo que falta el Submit del Form
  #11 (permalink)  
Antiguo 11/02/2003, 07:17
 
Fecha de Ingreso: mayo-2001
Ubicación: Monterrey, N.L.; México
Mensajes: 558
Antigüedad: 24 años
Puntos: 0
De acuerdo Gracias !!!!

Ya me funciono bien
les queria comentar que sí faltarónlos Submit's fue porque los omiti, solo pegue aqui las lineas necesarias, se me paso hacer ese comentario, ya que mi código esta un poco largo.

Ya me funciono UrJose, como siempre salvando mi trabajo ...
WebPelader también gracias, todo funciono bien

Luego regreso con mas dudas

Saludos a todos !!

Owen
__________________
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:44.