ASP, Consulta SQL a Tabla Access

Hola, disculpa que te moleste nuevamente, te escribo para ver si me puedes resolver la siguiente duda que tengo, capturo unos datos en la pagina ASP,
concretamente son una fechas, el codigo de eso es el siguiente:
<%if request.form("FechaInicial")="" then%>
<form method="POST" action="inventario.asp">
<div align="center">
<center>
 <p> </p>
<table border="0" width="50%" bgcolor="#F2F2F2">
<tr>
<td width="100%" colspan="2" bgcolor="#0000FF">
<p align="center"><font color="#FFFFFF">Rango de Fechas</font></td>
</tr>
<tr>
<td width="50%">Fecha Inicial:</td>
<td width="50%"><input type="text" name="FechaInicial" size="20"></td>
</tr>
<tr>
<td width="50%">Fecha Final: </td>
<td width="50%"> <input type="text" name="FechaFinal" size="20"></td>
</tr>
<tr>
<td width="100%" colspan="2">
<p align="center"><input type="submit" value="Enviar" name="B1"></td>
</tr>
</table>
</center>
</div>
</form>
<p align="center"> </p>
<p align="center"><a href="http://www.web.com/menu.asp">
<img border="0" id="img2" src="images/button11.jpg" height="20" width="100" alt="Menu Reportes"
onmouseover="FP_swapImg(1,0,/*id*/'img2',/*url*/'images/button12.jpg')"
onmouseout="FP_swapImg(0,0,/*id*/'img2',/*url*/'images/button11.jpg')"
onmousedown="FP_swapImg(1,0,/*id*/'img2',/*url*/'images/button13.jpg')"
onmouseup="FP_swapImg(0,0,/*id*/'img2',/*url*/'images/button12.jpg')" fp-style="fp-btn: Glass Capsule 1" fp-title="Menu Reportes"></a></p>
<p align="center"><a href="http://www.web.com/">
<img border="0" id="img1" src="button6.jpg" height="20" width="100" alt="Pagina Principal"
onmouseover="FP_swapImg(1,0,/*id*/'img1',/*url*/'button7.jpg')" onmouseout="FP_swapImg(0,0,/*id*/'img1',/*url*/'button6.jpg')"
onmousedown="FP_swapImg(1,0,/*id*/'img1',/*url*/'button8.jpg')" onmouseup="FP_swapImg(0,0,/*id*/'img1',/*url*/'button7.jpg')"
fp-style="fp-btn: Glass Capsule 1" fp-title="Pagina Principal"></a></p>
<p align="center"> </p>
En esta pequeña forma en ASP, capturo la fecha (aqui no se en q forma capturala si asi: "01012004" o asi "01/01/2004"). Y estos datos los
quiero incluir en forma de "parametros" en la consulta SQL.
Me marca el siguiente error:
Error Type:
Microsoft JET Database Engine (0x80040E07)
Data type mismatch in criteria expression.
/inventario.asp, line 94
A continuacion pego el codigo de lo que realiza al presionar el boton Submit.
Para ver si puedes ver en que parte tengo el error.
<%else
FechaInicial=replace(request.form("FechaInicial"),"'","")
FechaFinal=replace(request.form("FechaFinal"),"'","")
Dim oConn, rs, SQL
Dim nombre
set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("\dbf\Trafico2.mdb")
'SQL= "SELECT Trafico.Trafico, Trafico.FechaLLegada, Trafico.FechaSalida, Facturas.Factura, Facturas.OrdenCompra, Productos.Producto,
Productos.Descripcion, Productos.Cantidad, Productos.UnidadMedida, Productos.CantPresentacion, Productos.Presentacion,
Productos.Observaciones FROM (Trafico INNER JOIN Facturas ON Trafico.pk1=Facturas.pk1_trafico) INNER JOIN Productos ON
Facturas.pk1=Productos.pk1_Facturas WHERE Trafico.FechaLlegada between '"&FechaInicial&"' and '"&FechaFinal&"'"
SQL= "SELECT Trafico.Trafico, Trafico.FechaLLegada, Trafico.FechaSalida, Facturas.Factura, Facturas.OrdenCompra, Productos.Producto,
Productos.Descripcion, Productos.Cantidad, Productos.UnidadMedida, Productos.CantPresentacion, Productos.Presentacion,
Productos.Observaciones FROM (Trafico INNER JOIN Facturas ON Trafico.pk1=Facturas.pk1_trafico) INNER JOIN Productos ON
Facturas.pk1=Productos.pk1_Facturas WHERE (Trafico.FechaLlegada between '"&FechaInicial&"' and '"&FechaFinal&"') and (Trafico.FechaSalida
= Null or Trafico.FechaSalida = 0)"
set rs = oConn.Execute(SQL)
if rs.EOF then
Response.Write("No hay ningún registro en esta tabla")
else
PintarTabla
end if
rs.Close
set rs = nothing
oConn.Close
set oConn = nothing
Sub PintarTabla ()
Response.Write( "<TABLE BORDER=""1"">" & vbCrlf)
Response.Write( "<TR>" & vbCrlf)
Response.Write( "<TD><B>Producto</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Descripcion</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Cantidad</B></TD>" & vbCrlf )
Response.Write( "<TD><B>Unidad Medida</B></TD>" & vbCrlf )
while not rs.EOF
Response.Write( "<TR>" & vbCrlf )
Response.Write( "<TD>" & rs.Fields("Producto") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Descripcion") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("Cantidad") & "</TD>" )
Response.Write( "<TD>" & rs.Fields("UnidadMedida") & "</TD>" )
Response.Write( "</TR>" & vbCrlf )
rs.MoveNext
wend
Response.Write("</TABLE>")
End Sub 'PintarTabla
end if%>
Saludos!!!

1 Respuesta

Respuesta
Probá enviarla de la siguiente forma #09/09/2004#, respetando el formato configurado en la máquina donde reside la base de datos.
Por ejemplo:
"INSERT INTO TABLA (CAMPO) VALUES(#09/09/2004#)"
Gracias por tu ayuda, ya he podido resolver el problema, en si no kiera una fecha en particular, si no q el usuario decidiera de que fecha a q fecha.
lo que hecho asi:
SQL= "SELECT Trafico.Trafico, Trafico.FechaLLegada, Trafico.FechaSalida, Facturas.Factura, Facturas.OrdenCompra, Productos.Producto, Productos.Descripcion, Productos.Cantidad, Productos.UnidadMedida, Productos.CantPresentacion, Productos.Presentacion, Productos.Observaciones FROM (Trafico LEFT JOIN Facturas ON Trafico.pk1=Facturas.pk1_trafico) LEFT JOIN Productos ON Facturas.pk1=Productos.pk1_Facturas WHERE (Trafico.FechaLlegada between #" & FechaInicial & "# and #" & FechaFinal & "#) and (Trafico.FechaSalida is Null)"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas