Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2010, 03:54
pumi
 
Fecha de Ingreso: marzo-2007
Mensajes: 127
Antigüedad: 17 años, 2 meses
Puntos: 2
Problemas en una SELECT con fechas

Hola a todo el mundo:

No se muy bien si poner este post en este foro o en el de las bases de datos, ya que intervine ACCESS y visual Basic.

El problema es el siguiente y me tiene loco del todo:

Creo una consulta para anexar datos en ACCESS cuyo código SQL es el siguiente:

INSERT INTO AUX_VisitasPorTipoEntrada ( Fecha, EntradasGratuitas, EntradasReducidas, EntradasGeneral )
SELECT VisitasPorTipoEntrada.Fecha, VisitasPorTipoEntrada.EntradasGratuitas, VisitasPorTipoEntrada.EntradasReducidas, VisitasPorTipoEntrada.EntradasGeneral
FROM VisitasPorTipoEntrada
GROUP BY VisitasPorTipoEntrada.Fecha, VisitasPorTipoEntrada.EntradasGratuitas, VisitasPorTipoEntrada.EntradasReducidas, VisitasPorTipoEntrada.EntradasGeneral
HAVING (((VisitasPorTipoEntrada.Fecha) Between #8/23/2010# And #9/3/2010#));


La tabla de la que toma los datos para insertarlos en la tabla de destino tiene datos y tengo unos registros de prueba desde el mes de Julio de 2010 hasta septiembre del 2010.
Si ejecuto la consulta directamente y cambio las fechas del parte del "between" funciona correctamente y sin pegas sean las fechas que sean las de la parte "between", me coge todo lo que me tiene que coger. Pero ahora viene lo que me trae loco.

Esa consulta la tengo que ejecutar desde el visual basic (uso visual basic dentro de un formulario access) y además ejecutando el código tal cual, es decir, no puedo llamar ejecutar la consulta hecha en access proque las fechas iniciales y finales dependen de los datos introducidos en un formulario y que almaceno en sendas variables de tipo DATE. Es decir la sentencia SQL que ejecuto es la siguiente:

stCondicion3 = "INSERT INTO AUX_VisitasPorTipoEntrada (Fecha, EntradasGratuitas, EntradasReducidas, EntradasGeneral) SELECT VisitasPorTipoEntrada.Fecha, VisitasPorTipoEntrada.EntradasGratuitas, VisitasPorTipoEntrada.EntradasReducidas, VisitasPorTipoEntrada.EntradasGeneral FROM VisitasPorTipoEntrada GROUP BY VisitasPorTipoEntrada.Fecha, VisitasPorTipoEntrada.EntradasGratuitas, VisitasPorTipoEntrada.EntradasReducidas, VisitasPorTipoEntrada.EntradasGeneral HAVING (((VisitasPorTipoEntrada.Fecha) Between #" & MiFechaInicial & "# And #" & MiFechaFinal & "#));"

DoCmd.RunSQL stCondicion3


Pues al ejecutar esta consulta, si el valor de MiFechaFinal es inferior al día 01/09/2010 me selecciona todo perfecto e inserta los datos en la tabla correctamente y todo fetén, pero en cuanto el valor de MiFechaFinal es igual o superior al día 01/09/2010, no me coge ni un solo dato.

He hecho un millón de pruebas con diferentes fechas de inicio y de final y sólo falla a partir del mes de septiembre. ¡¡ESTOY LOCO DELTODO!!.

Bueno, he contado un rollete pero espero haberme explicado bien y que alguien me pueda ayudar.

Por cierto, uso access 2007 por si sirve de algo.

Muchas gracias y un saludo.