Filtrar una consulta a través de un formulario de Access

No consigo filtrar un formulario basado en una consulta.

El campo de la consulta por el que debo filtrar (Veces) es un campo calculado, y es el siguiente:

Veces: DCont("[Autor1]";"[CPendientes]";"[Autor1]='" & [Autor1] & "'")

Si en la misma consulta intento filtrar, añadiendo un criterio, tal y como muestro en la imagen:

Me da el siguiente "error":

El campo por el que pregunta (Autor1), es un campo calculado sobre el campo Autor, porque en este aparecen registros con apóstrofos, y he utilizado la siguiente fórmula para que me funcione la función Contar:

Autor1: Reemplazar([TAutor].[Autor];"'";"&")

Luego, en el formulario, tengo un botón para añadir el filtro. He probado con este, pero no sé si es correcto:

Private Sub Etiqueta42_Click()
'Me.Filter = "Veces > 1"
Me.FilterOn = True
End Sub

Además de que no sé si el campo Veces debe aparecer en el formulario, aunque sea oculto.

1 Respuesta

Respuesta
2

Hazlo así:

Veces: DCont("*";"[CPendientes]";"[Autor1]='" & Reemplazar([TAutor].[Autor];"'";"&") & "'")

o así:

Veces: DCont("*";"[CPendientes]";"Reemplazar([TAutor].[Autor];"'";"&")='" & Reemplazar([TAutor].[Autor];"'";"&") & "'")

En cuanto a lo de aplicar el filtro, debes usar las dos líneas que tienes en tu código conjuntamente: con la primera le dices cual es el filtro que quieres usar, y con la segunda, que lo aplique.

Hola. Muchas gracias. Me funciona a la perfección. Solo una cosa. Este código me da error de sintaxis en el primer reemplazar:

Veces: DCont("*";"[CPendientes]";"Reemplazar([TAutor].[Autor];"'";"&")='" & Reemplazar([TAutor].[Autor];"'";"&") & "'")

En  (;"'";"&").

Un saludo.

Supongo que te funciona la primera opción.

La que te da error, solo te la puse por si la primera no funcionaba, ni siquiera estaba seguro de que fuera a funcionar. Imagino que será problema de comillas dentro del lenguaje SQL, pero si ya tienes una forma que funciona, no le demos vueltas, jejeje...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas