Access - Filtros Access2007 con fechas

 
Vista:

Filtros Access2007 con fechas

Publicado por Jose (55 intervenciones) el 09/09/2009 18:08:41
Hola,
Tengo un problema con Access2007 ( y los anteriores).
Frecuentemente tengo necesidad de crear filtros sobre fechas desde VBA y no funcionan.
Solo funcionan si tengo una fecha unica a filtrar, pero si tengo que filtrar entre dos fechas no funciona. Da resultados incongruentes. Pienso que es debido al formato americano y europeo, pero no se como resolverlo. Les agradezco sus respuestas

José
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Filtros Access2007 con fechas

Publicado por Enrique (1299 intervenciones) el 09/09/2009 20:12:55
Hola Jose:
No indicas como lo haces, pero suponiendo que quieras filtrar el Origen del registro de un formulario entre dos fechas introducidas en dos cuadros de texto de un formulario (FechaInicio y FechaFinal y el campo de la tabla o Consulta que contiene las Fechas es FechaCompra), sería algo así:

Me.Recordsource = "Select * From TABLA1 Where FechaCompra BETWEEN #" & Format(Me.FechaInicio, "mm/dd/yy") & "# AND #" & Format Me.FechaFinal, "mm/dd/yy") & "#"

Fijate que hay que darle siempre formato Americano a las fechas introducidas en los cuadros de texto, independientemente del formato que estés usando en la Tabla.

Prueba a ver si te funciona de esta forma.

Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtros Access2007 con fechas

Publicado por José (55 intervenciones) el 09/09/2009 20:42:59
Hola y gracias por tu pronta respuesta.
Pienso que según me indicas debe de funcionar; pero yo quería evitarme el modificar el origen del formulario.
Tengo mas de 6 campos a filtrar en un formulario continuo y 6 campos (origen del filtro) en el encabezado del mismo formulario.
4 campos string y 2 fechas.
A veces me interesa filtrar por 5 campos.
A veces por 1 campo; a veces por 3 campos.
Si cambio el origen del recordSet y le atribuyo una consulta despues si quiero filtrar por 1 campo de la forma
Me.filter = "[DISCIPLINA] = " & Chr$(34) & Me![FILTRODISCIPLINA] & Chr$(34)
Me.FilterOn = True
Pues no funciona. Tengo que volver antes al origen del RecordSource ( o sea a la tabla)
La verdad es que los filtros con fechas en Access no lo tengo bien asimilado.
De todas formas gracias

Ps. Provisionalmente lo he resulto creando una consulta (basada en los campos del formulario) que pongo como origen del RecordSet en el momento de filtrar y otra cuando quiero quitar el filtro.

Un saludo
José
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtros Access2007 con fechas

Publicado por Chea (1015 intervenciones) el 09/09/2009 22:07:20
En Access 2007 los filtros incorporados son tan potentes que hay que pensarse mucho si merece hacer unos filtros personalizados.

Échale un vistazo a este artículo: http://geeks.ms/blogs/access/archive/2009/02/02/filtros-en-access-2007.aspx

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtros Access2007 con fechas

Publicado por José (55 intervenciones) el 10/09/2009 00:37:28
Hola Chea,

Gracias por tu respuesta.
He tomado nota de lo que me dices y no te falta razón. Muchos problemas se pueden simplificar por este camino.
No obstante en el caso que me ocupa tengo un formulario con un subformulario y debe de realizar una serie de operaciones y actualizaciones que no se pueden realizar por ese camino; pero quizá yo esté muy obsesionado con VBA.
De todas formas gracias por todo
Un saludo

José
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtros Access2007 con fechas

Publicado por Chea (1015 intervenciones) el 10/09/2009 15:56:42
En ese caso, puede venirte bien echarle una ojeada a BuildCriteria():

http://jbengoechea.com/ConstruyeCriterio.htm

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Filtros Access2007 con fechas

Publicado por José (55 intervenciones) el 11/09/2009 04:53:53
Hola;
Quiero agradecer a todos Ustedes la ayuda que me han prestado.
A titulo de ejemplo (pues me ha costado (a otros no les costaría mucho, pero a mi si), les dejo una parte del código que he insertado en mi procedimiento.

Select Case Me![FILTREDISCIPLINE]
Case "P", "T", "O"
Criteria = "[PRONOSTIQUEUR] = " & Chr$(34) & Me![FILTREPRONOSTIQUEUR] & Chr$(34)
Criteria = Criteria & " And [PARIS] = " & Chr$(34) & Me![FILTREPARIS] & Chr$(34)
Criteria = Criteria & " And [DISCIPLINE] = " & Chr$(34) & Me![FILTREDISCIPLINE] & Chr$(34)
Criteria = Criteria & " And [DATECOURSE] BETWEEN #" & Format(Me![FILTREDATE], "mm/dd/yy") & "# AND #" & Format(Me![FILTREDATE2], "mm/dd/yy") & "#"
Case "A"
Criteria = "[PRONOSTIQUEUR] = " & Chr$(34) & Me![FILTREPRONOSTIQUEUR] & Chr$(34)
Criteria = Criteria & " And [PARIS] = " & Chr$(34) & Me![FILTREPARIS] & Chr$(34)
Criteria = Criteria & " And ([DISCIPLINE] = " & Chr$(34) & "P" & Chr$(34)
Criteria = Criteria & " Or [DISCIPLINE] = " & Chr$(34) & "T" & Chr$(34) & ")"
Criteria = Criteria & " And [DATECOURSE] BETWEEN #" & Format(Me![FILTREDATE], "mm/dd/yy") & "# AND #" & Format(Me![FILTREDATE2], "mm/dd/yy") & "#"
End Select
'MsgBox Criteria
Me.Filter = Criteria
Me.FilterOn = True

Por el momento me funciona.

Un saludo

José
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar