Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema de Filtro Entre Fechas

Estas en el tema de Problema de Filtro Entre Fechas en el foro de Bases de Datos General en Foros del Web. Tengo un formulario "EntreFechas" donde selecciono datos de una tabla entre dos fechas, con el siguiente código: =================================== Private Sub ImprCompras_Click() Dim strWhere As String ...
  #1 (permalink)  
Antiguo 14/07/2004, 12:38
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
Pregunta Problema de Filtro Entre Fechas

Tengo un formulario "EntreFechas" donde selecciono datos de una tabla entre dos fechas, con el siguiente código:
===================================
Private Sub ImprCompras_Click()

Dim strWhere As String

Me.Visible = False
strWhere = "[FechaCompra] Entre #" & (DesdeFecha) & "# Y #" & (HastaFecha) & "#"
DoCmd.OpenReport ReportName:="ComprasPeriodo", View:=acPreview, WhereCondition:=strWhere
DoCmd.SelectObject acReport, "ComprasPeriodo"
DoCmd.Close acForm, Me.Name

End Sub
==================================
Después de colocar las dos fechas en el formulario (01/07/04 y 04/07/04) y dar a imprimir, me da el siguiente error:

"Se ha producido el error 3075 en tiempo de Ejecución.
Error de Sintaxis (falta operador) en la expres. de consulta '([FechaCompra]ENTRE #01/07/04# Y #04/07/04#)'
-------------
A que operador se refiere? Dónde me falta?.

Muchas gracias por la ayuda que me puedieran brindar.
  #2 (permalink)  
Antiguo 14/07/2004, 14:02
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años
Puntos: 655
Código PHP:
strWhere "[FechaCompra] Entre '#" & (DesdeFecha) & "#' Y '#" & (HastaFecha) & "#'" 
Ponele comillas sencillas para encerrar toda la expresión y quede como ([FechaCompra]ENTRE '#01/07/04#' Y '#04/07/04#').

Otra cosa, supongo que ENTRE es LIKE y el Y es el AND.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 14/07/2004, 14:25
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 20 años, 5 meses
Puntos: 1
A ver puedes probar asi:
===================================
Private Sub ImprCompras_Click()

Dim strWhere As String

Me.Visible = False
strWhere = "[FechaCompra] >= #" & (DesdeFecha) & "# AND [FechaCompra] <=#" & (HastaFecha) & "#"
DoCmd.OpenReport ReportName:="ComprasPeriodo", View:=acPreview, WhereCondition:=strWhere
DoCmd.SelectObject acReport, "ComprasPeriodo"
DoCmd.Close acForm, Me.Name

End Sub
==================================
Creo que te servira
un saludo
Skakeo®
  #4 (permalink)  
Antiguo 14/07/2004, 14:28
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 20 años, 5 meses
Puntos: 1
Perdon:
===================================
Private Sub ImprCompras_Click()

Dim strWhere As String

Me.Visible = False
strWhere = "[FechaCompra] >= #" & DesdeFecha & "# AND [FechaCompra] <=#" & HastaFecha & "#"
DoCmd.OpenReport ReportName:="ComprasPeriodo", View:=acPreview, WhereCondition:=strWhere
DoCmd.SelectObject acReport, "ComprasPeriodo"
DoCmd.Close acForm, Me.Name

End Sub
==================================
Suponiendo que sean variables, si el filtro lo creas en un formulario y DesdeFecha, HastaFecha son textbox y se llaman asi debes poner
strWhere = "[FechaCompra] >= #" & me.DesdeFecha & "# AND [FechaCompra] <=#" & me.HastaFecha & "#"
Creo que no me olvido nada esta vez
Un saludo
Skakeo®
  #5 (permalink)  
Antiguo 15/07/2004, 06:21
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola, gracias por la rapidez y por los consejos.

Algo me debe faltar o estoy haciendo algo que se me escapa.

Efectivamente, DesdeFecha y HastaFecha son textbox, por lo que el código lo puse segun la segunda nota.
Me funciona mejor con lo indicado por Skakeo ya que ejecuta el código sin dar error, y me abre el formulario, pero en blanco, es decir, sin los datos (hay datos).

Sabes donde está el problema?

Muchas gracias por anticipado.

Rodolfo.
  #6 (permalink)  
Antiguo 15/07/2004, 06:40
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 20 años, 5 meses
Puntos: 1
Bien el problema entonces va a ser que tu tienes la fecha en formato "dd/mm/yyyy" y por codigo hay que pasarle "mm/dd/yyyy", nos ha pasado ha todos.
Prueba a pasarle la fecha tal que asi:
format(me.DesdeFecha , "mm/dd/yyyy")
A ver si es eso
un saludo
Skakeo®
  #7 (permalink)  
Antiguo 15/07/2004, 09:22
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
Skakeo:
MUUUUCHAS GRACIAS!!! Este agradecimiento merece ser en Mayúsculas. Perfecto!
Donde hay conocimiento....
Un cordial saludo.
Rodolfo
  #8 (permalink)  
Antiguo 29/07/2004, 11:42
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
Otra vez estoy por aquí, con algo del mismo tema.
En pantalla me funciona perfecto. El informe me aparece con los datos correctos entre las fechas seleccionadas. En la zona del título he puesto "Entre (indicacion del campo texto: DesdeFecha) y el (HastaFecha). y como digo, en pantalla me aparecen las dos fechas que coloqué como filtro, pero al imprimir el informe, reemplaza las fechas con #Nombre?#. Por que no se imprimen?
Muchas gracias anticipadas por la ayuda.
Rodolfo G.
  #9 (permalink)  
Antiguo 29/07/2004, 12:03
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 20 años, 5 meses
Puntos: 1
Re fechas

A ver puedes escribir la expresion completa que estas usando.
Un saludo
Skakeo®
  #10 (permalink)  
Antiguo 29/07/2004, 12:25
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola, gracias por tu presencia.
En el formulario tengo dos campos independientes: DesdeFecha y HastaFecha
y el siguiente código:
Dim strWhere As String
Me.Visible = False
strWhere = "[FechaCompra]>= #" & Format(Me.DesdeFecha, "mm/dd/yyyy") & "# AND [FechaCompra] <=#" & Format(Me.HastaFecha, "mm/dd/yyyy") & "#"
DoCmd.OpenReport ReportName:="ComprasPeriodo", View:=acPreview, WhereCondition:=strWhere
DoCmd.SelectObject acReport, "ComprasPeriodo"
DoCmd.Close acForm, Me.Name

En el informe dos cuadros independientes con origen:
=[Formularios]![DesdeHasta]![DesdeFecha] y =[Formularios]![DesdeHasta]![DesdeFecha]

Selecciona bien y en pantalla me aparecen las fechas correctamente.

Gracias por tu amabilidad.
Un saludo
Rodolfo
  #11 (permalink)  
Antiguo 29/07/2004, 12:35
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 20 años, 5 meses
Puntos: 1
Como se llama el formulario? eso es lo que te falta si me lodices te escribo la expresion correcta.
Un saludo
Sk@keo®
  #12 (permalink)  
Antiguo 29/07/2004, 12:38
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
El formulario donde pongo las fechas de seleccion se llama "DesdeHasta"

Saludos
  #13 (permalink)  
Antiguo 29/07/2004, 12:39
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 20 años, 5 meses
Puntos: 1
ok la expresion es:
=Formularios!DesdeHasta.Formulario![DesdeFecha]
o
=Forms!DesdeHasta.Form!DesdeFecha
si ya lo se el formulario se llama DesdeHasta, estaria mas claro si fuera frmDesdeHasta, no crees?...., solo es un consejo.
Un saludo
Sk@keo®
  #14 (permalink)  
Antiguo 29/07/2004, 12:59
 
Fecha de Ingreso: julio-2004
Mensajes: 11
Antigüedad: 20 años, 4 meses
Puntos: 0
Lo acabo de probar, pero no me deja: En Propiedades del campo de fecha del Informe, en Origen del control, donde tengo la expresión:"=[Formularios]![frmDesdeHasta]![Formularios]![DesdeFecha]" la reemplazo por la que me mencionas, pero al mover el cursor, repone la expresión anterior.
O debo ponerla en otro lugar??
Un saludo.
Rodolfo
  #15 (permalink)  
Antiguo 29/07/2004, 13:11
 
Fecha de Ingreso: junio-2004
Ubicación: Barcelona
Mensajes: 61
Antigüedad: 20 años, 5 meses
Puntos: 1
Puedes enviarme una pequeña copia con el informe, el formulario y las tablas, por favor comprimela con winzip o winrar. Me lo miro y te lo devuelvo en 10 min.
Un saludo
Sk@keo®
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 23:11.