Ayudenme con este Filtro Con Sql

polielb
20 de Febrero del 2004
Hola, estoy queriendo filtrar en visulabasic por un campo donde tengo fecha y hora juntos cargados con now, quiero filtrarlo solo por la fecha dd/mm/yyyy
la consulta en access sin filto es asi

SELECT SOCIOS.NumSocio, CLIENTES.APELLIDOS, CLIENTES.NOMBRES, SERVICIOS_PLUS.NOMBRE, SERVICIO_PLUS_ADI.NOMBRES, [MOVIMIENTO SERVIPAGO].CodCLienteServicio, [MOVIMIENTO SERVIPAGO].[Nro Recibo/Factura], [MOVIMIENTO SERVIPAGO].Importe, [MOVIMIENTO SERVIPAGO].FechaPago, [MOVIMIENTO SERVIPAGO].Hora, [MOVIMIENTO SERVIPAGO].CodSucursal, [MOVIMIENTO SERVIPAGO].ResponsableModif, Format([MOVIMIENTO SERVIPAGO]![FechaModificacion],"dd/mm/yyyy") AS Expr1
FROM (CLIENTES INNER JOIN SOCIOS ON CLIENTES.NRO_CLIENTE = SOCIOS.NumCliente) INNER JOIN ((SERVICIOS_PLUS INNER JOIN SERVICIO_PLUS_ADI ON SERVICIOS_PLUS.COD_SER_PLUS = SERVICIO_PLUS_ADI.COD_SER_PLUS) INNER JOIN [MOVIMIENTO SERVIPAGO] ON (SERVICIO_PLUS_ADI.COD_SER_PLUS_ADI = [MOVIMIENTO SERVIPAGO].COD_SER_PLUS_ADI) AND (SERVICIO_PLUS_ADI.COD_SER_PLUS = [MOVIMIENTO SERVIPAGO].COD_SER_PLUS)) ON CLIENTES.NRO_CLIENTE = [MOVIMIENTO SERVIPAGO].Numcliente;

Donde al campo fecha de loy un formato solo para que me filtre la fecha sin la hora, en access funciona pero cuando lo pego al visual me da un mensaje de desbordamiento

ahora si le incluyo el filtro en access tambien funciona y me levanta los correspondientes registros pero al pegarlo a visual me da error en la parte de Expr1 donde le doy el formato a la fecha

SELECT SOCIOS.NumSocio, CLIENTES.APELLIDOS, CLIENTES.NOMBRES, SERVICIOS_PLUS.NOMBRE, SERVICIO_PLUS_ADI.NOMBRES, [MOVIMIENTO SERVIPAGO].CodCLienteServicio, [MOVIMIENTO SERVIPAGO].[Nro Recibo/Factura], [MOVIMIENTO SERVIPAGO].Importe, [MOVIMIENTO SERVIPAGO].FechaPago, [MOVIMIENTO SERVIPAGO].Hora, [MOVIMIENTO SERVIPAGO].CodSucursal, [MOVIMIENTO SERVIPAGO].ResponsableModif, Format([MOVIMIENTO SERVIPAGO]![FechaModificacion],"dd/mm/yyyy") AS Expr1
FROM (CLIENTES INNER JOIN SOCIOS ON CLIENTES.NRO_CLIENTE = SOCIOS.NumCliente) INNER JOIN ((SERVICIOS_PLUS INNER JOIN SERVICIO_PLUS_ADI ON SERVICIOS_PLUS.COD_SER_PLUS = SERVICIO_PLUS_ADI.COD_SER_PLUS) INNER JOIN [MOVIMIENTO SERVIPAGO] ON (SERVICIO_PLUS_ADI.COD_SER_PLUS_ADI = [MOVIMIENTO SERVIPAGO].COD_SER_PLUS_ADI) AND (SERVICIO_PLUS_ADI.COD_SER_PLUS = [MOVIMIENTO SERVIPAGO].COD_SER_PLUS)) ON CLIENTES.NRO_CLIENTE = [MOVIMIENTO SERVIPAGO].Numcliente
WHERE ((([MOVIMIENTO SERVIPAGO].CodSucursal)=1) AND (([MOVIMIENTO SERVIPAGO].ResponsableModif)=2) AND ((Format([MOVIMIENTO SERVIPAGO]![FechaModificacion],"dd/mm/yyyy"))=#19/02/2004#));

albertoblanco
20 de Febrero del 2004
A mi me paso un caso parecido, en que efectivamente una fecha de la BBDD necesitaba tener la hora, pero luego se necesitaba selecionar sólo por la fecha. Puedes hacer una cosa muy sencilla, y es guardar fecha y hora en la tabla por separado, u otra si no quieres añadir un campo, que es añadir a la fecha por la que comparas la primera hora del día y la ultima, algo asi:

MiCampoFecha>=#mm/dd/aaaa 00:00:00# and MiCampoFecha<=#mm/dd/aaa 23:59:59#,

siendo mm/dd/aaaa la fecha que quieres buscar. A mi esto último me funciono bien.

Espero haberte sido de ayuda

Un saludo