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

Ayuda por favor!!!

Estas en el tema de Ayuda por favor!!! en el foro de ASP Clásico en Foros del Web. Veran compañeros,tengo una bd en access de la cual quiero ver unicamente la informacion del producto que yo he seleccionado a traves de un formulario ...
  #1 (permalink)  
Antiguo 20/07/2004, 02:52
 
Fecha de Ingreso: mayo-2004
Mensajes: 7
Antigüedad: 21 años
Puntos: 0
Ayuda por favor!!!

Veran compañeros,tengo una bd en access de la cual quiero ver unicamente la informacion del producto que yo he seleccionado a traves de un formulario anterior.

En este formulario anterior selecciono la informacion a visualizar de este registro y para eso paso la Id del producto.Bien,en el formulario de recogida la Id del Producto me pasa correctamente,es decir,la Id que me llega es la que tiene el Producto en la bd access.Hasta aqui todo bien,el ¿problema? biene cuando quiero ver la informacion de este producto cuando en teoria una vez pasada la Id del Producto es lo mas facil,pero debe ser un problema de la consulta o algo.Mirad lo que tengo en el formulario de mostrar la informacion:

<%
id=Request.Form("IdProducte")
response.write id
%>
<table border=1 width=70% align=center>



<td><CENTER><font color="#6633ff" size=4>DESCRIPCIÓ</td>
<td><CENTER><FONT COLOR="#6633ff" size=4 face="verdana">CODI</td>
<td><CENTER><font color="#6633ff" size=3>EUROS</td>
<tr>
<%


Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = server.createobject("ADODB.Recordset")
connstring="cosefed_manresa"
Conn.Open connstring
SQL = "SELECT * FROM preus_productes WHERE IdProducte='" & id & "' "
RS.Open SQL,Conn
while not RS.eof %>

</tr>

<td><CENTER><font color="#ff0000" size=3><%=RS("DESCRIPCIÓ")%></td>
<td><CENTER><FONT COLOR="#000000" size=3 face="verdana"><%=RS("CODI")%></td>
<td><CENTER><font color="#000000" size=2><%=RS("EUROS")%></td>





<%RS.MOVENEXT ' fiche
wend
%>

</table>
<%
Conn.Close
%>

<br><br><br>

Y el Error que me da el navegador es:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Controlador ODBC Microsoft Access] No coinciden los tipos de datos en la expresión de criterios.
El problema debe de ser de la consulta pq si la cambio por una muy facil funciona.Ayudadme por favor,y perdonad por poner un texto tan largo pero es para que os pueda quedar claro.Muchas Gracias de antemano.
  #2 (permalink)  
Antiguo 20/07/2004, 08:39
 
Fecha de Ingreso: agosto-2002
Mensajes: 301
Antigüedad: 22 años, 9 meses
Puntos: 2
Creo que el campo IdProducte debe ser numerico y tu le estas poniendo cremillas prueba con esto
SQL = "SELECT * FROM preus_productes WHERE IdProducte='" & id & "' "
SQL = "SELECT * FROM preus_productes WHERE IdProducte=cstr(id)
  #3 (permalink)  
Antiguo 20/07/2004, 12:15
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Solo para confirmar:
SQL = "SELECT * FROM preus_productes WHERE IdProducte="&cstr(id)
o bien
SQL = "SELECT * FROM preus_productes WHERE IdProducte="&id

Ojo cuando por cualquier razon id venga en blanco o con algo no esperado. Lo mejor es validar el dato antes de concatenar en la consulta.
Saludos

Última edición por Myakire; 21/07/2004 a las 08:37
  #4 (permalink)  
Antiguo 21/07/2004, 06:49
 
Fecha de Ingreso: mayo-2004
Mensajes: 45
Antigüedad: 21 años
Puntos: 0
Pregunta

Hoña!

Si el identificador usado es numerico (o autonumerico) no deberían ponerse las comillas no? Vamos, digo yo...

Prueba con:

If IsNull(id) Then id = 0 'por ejemplo...
SQL = "SELECT * FROM preus_productes WHERE IdProducte=" & id

saludos = saludos + 1
__________________
Et lux in tenebris lucet...
s.f.wil
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 11:07.