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

Problema type mismatch

Estas en el tema de Problema type mismatch en el foro de ASP Clásico en Foros del Web. Hola amigos, tengo un problema con tipos de datos diferentes. Ingreso el precio_min y precio_max a través de dos campos de texto de un formulario. ...
  #1 (permalink)  
Antiguo 27/04/2006, 06:00
 
Fecha de Ingreso: febrero-2006
Mensajes: 41
Antigüedad: 18 años, 3 meses
Puntos: 0
Problema type mismatch

Hola amigos, tengo un problema con tipos de datos diferentes. Ingreso el precio_min y precio_max a través de dos campos de texto de un formulario. Cuando hago la consulta, tengo:

SELECT * FROM tabla WHERE Precio BETWENN &precio_min& AND &precio_max&

y me produce el error Type mismatch. Está bien hecha la consulta?
Saludos y gracias
  #2 (permalink)  
Antiguo 27/04/2006, 07:08
Avatar de gorka_arai  
Fecha de Ingreso: octubre-2005
Mensajes: 281
Antigüedad: 18 años, 7 meses
Puntos: 1
Si es así como la tienes, malamente...
Cita:
Iniciado por maron
Cuando hago la consulta, tengo:

SELECT * FROM tabla WHERE Precio BETWEEN &precio_min& AND &precio_max&
Saludos y gracias
  #3 (permalink)  
Antiguo 27/04/2006, 07:09
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
"SELECT * FROM tabla WHERE Precio between "&precio_min&" AND "&precio_max
  #4 (permalink)  
Antiguo 27/04/2006, 07:39
 
Fecha de Ingreso: febrero-2006
Mensajes: 41
Antigüedad: 18 años, 3 meses
Puntos: 0
Perdón, me equivoqué al escribir la consulta. La tengo bien escrita (como dice arriba, entre ""). Me preguntaba si puede dar algún problema que obtengo el parámetro en un campo de texto y la variable precio es un número . El campo de la BD es tipo numérico y las variables precio_min y precio_max están inicializadas en 0.
  #5 (permalink)  
Antiguo 27/04/2006, 23:44
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
para asegurarte haz un
Código:
"SELECT * FROM tabla WHERE Precio between "&cint(precio_min)&" AND "&cint(precio_max)
(cint si es un entero, etc, etc....).

Aunque no debería hacer falta
  #6 (permalink)  
Antiguo 28/04/2006, 17:53
 
Fecha de Ingreso: febrero-2006
Mensajes: 41
Antigüedad: 18 años, 3 meses
Puntos: 0
Queria hacerla corta, por eso no puse el codigo antes, pero sigue sin funcionar. Aqui va, pues a lo mejor el problema es otro:

<%
Dim opcion
opcion = 0
%>

<%
Dim var_dorm
var_dorm = 0
If Request("dorm") <> "" Then
var_dorm = Request("dorm")
opcion = opcion + 1000
End If
%>

<%
Dim var_precio_min, var_precio_max
var_precio_min = 0
var_precio_max = 9999999
If (Request("min") <> "") Then
var_precio_min = (Request("min"))
opcion = opcion + 10000
End If
If (Request("max") <> "") Then
var_precio_max = (Request("max"))
End If
%>
.
.
.
<%Dim oConn
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb);DBQ=C:\pathdelaBD.mdb;"
%>

<%
Dim rs_consulta

Set rs_consulta = Server.CreateObject("ADODB.Recordset")
rs_consulta.ActiveConnection = "DRIVER={Microsoft Access Driver (*.mdb);DBQ=C:\pathdelaBD\BD\BD.mdb;"
rs_consulta.Source = "SELECT * FROM Tabla1"

select case opcion
case 0
rs_consulta.Source = "SELECT * FROM Tabla1"
.
.
.
case 1000
rs_consulta.Source = "SELECT * FROM Tabla1 WHERE Dormitorios = '"&clng(var_dorm)&"'"
case 10000
rs_consulta.Source = "SELECT * FROM Tabla1 WHERE Precio BETWEEN '"&clng(var_precio_min)&"' AND '"&clng(var_precio_max)&"'"
.
.
.
end select

rs_consulta.CursorType = 0
rs_consulta.CursorLocation = 2
rs_consulta.LockType = 1
rs_consulta.Open()

'aqui es donde aparece el error, en la linea del Open
'Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
'[Microsoft][ODBC Microsoft Access Driver]
'Data type mismatch in criteria expression.

<%
rs_consulta.Close()
Set rs_consulta = Nothing
%>
<%oConn.Close()%>

Los campos Precio y Dormitorios de la BD son tipo Numerico
En los campos texto no da problema la consulta.
Desde ya, gracias por el aporte
Saludos
  #7 (permalink)  
Antiguo 28/04/2006, 17:56
 
Fecha de Ingreso: febrero-2006
Mensajes: 41
Antigüedad: 18 años, 3 meses
Puntos: 0
Me falto lo que va en la pagina de consulta:

<form name="form1" method="get" action= "listado.asp">

<select name="dorm" size="1" id="dorm">
<option value="0">ninguno</option>
<option value="1">uno</option>
</select>

<input name="min" type="text" id="min">
<input name="max" type="text" id="max">

<input type="Submit" name="submit" value="Enviar">
  #8 (permalink)  
Antiguo 28/04/2006, 18:08
Avatar de a n g e l u s  
Fecha de Ingreso: enero-2006
Ubicación: Chile
Mensajes: 237
Antigüedad: 18 años, 5 meses
Puntos: 1
hola maron

tu lo tienes asi: (usas comillas simples para llamar a numeros)

rs_consulta.Source = "SELECT * FROM Tabla1 WHERE Precio BETWEEN '"&clng(var_precio_min)&"' AND '"&clng(var_precio_max)&"'"

y debe ser asi:

rs_consulta.Source = "SELECT * FROM Tabla1 WHERE Precio BETWEEN "&clng(var_precio_min)&" AND "&clng(var_precio_max)


TRASGUKABI le dio la respuesta correcta.
__________________
Atte,
A n g e l u s
Concepción - Chile
más vale respuestas bien pensadas, que 7000 post
  #9 (permalink)  
Antiguo 29/04/2006, 03:30
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
vale, me callo.

Última edición por trasgukabi; 29/04/2006 a las 11:56
  #10 (permalink)  
Antiguo 29/04/2006, 09:54
 
Fecha de Ingreso: febrero-2006
Mensajes: 41
Antigüedad: 18 años, 3 meses
Puntos: 0
No calentarse, Trasgukabi, para los "abombados" como yo, tiene que haber un "ANGEL" que les muestre el camino.
Gracias a ambos. Funcionó.
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 17:57.