Filtrar un formulario Access con ComboBox

He realizado un filtro con Cuadro Combinado (llamado Filtro_MSN) en un formulario Access y he añadido la consulta de Visual Basic para filtrar dentro del rango de posibilidades, únicamente los relativos a los diferentes valores de la columna (en la tabla PreCIG_RawData para la columna Raw_MSN).

Es decir, tengo 70 datos que se pueden filtrar en 3 tipos de datos diferentes en la columna Raw_MSN.

En Propiedades del cuadro combinado/origen de la fila he puesto la condición:

SELECT DISTINCT PreCIG_RawData.Raw_MSN FROM PreCIG_RawData ORDER BY PreCIG_RawData.[Raw_MSN];

En el formúlario me muestra correctamente los 3 valores posibles, y para filtrarlos añado el siguiente código visual el cual me da error.

Private Sub Filtro_MSN_Click()
Me.Refresh
Form.RecordSource = "Select * from PreCIG_RawData where Raw_MSN = '" & Form!Filtro_MSN.Value & "'"
End Sub

¿Me podría decir en que me estoy equivocando?

Muchas gracias por su tiempo.

Podría añadir de igual forma diferentes Filtros de la misma forma para que se puedan concatenar varios a la vez.

1 Respuesta

Respuesta
1

Te equivocas en un par de puntos:

El primero es el evento en que colocas el código, que deberá ser "Después de actualizar" y no "Al hacer click"

El segundo es el propio código: la mejor manera de filtrar no es cambiar el origen del formulario (el recordsource), sino aplicarle un filtro al form, de esta manera:

Private Sub Filtro_MSN_AfterUpdate()

Dim miFiltro As String

miFiltro="[Raw_MSN]='" & Me.Filtro_MSN & "'"

Me.Filter=miFiltro

Me.FilterOn=True

End Sub

Para aplicar un filtro múltiple por medio de varios combos, mírate este ejemplo de Neckkito, que lo explica paso a paso: http://siliconproject.com.ar/neckkito/index.php/ejemplos-explicados/formularios/93-ejemplos-explicados/ejemplos-de-formularios/194-crear-un-filtro-multiple

buenas noches.
muchisimas gracias por tu rapida respuesta.
al introducir dicho codigo, tengo un error al finalizar la linea
Me.Filter= miFiltro
es el error 3464, referente a la falta de coincidencia de loa tipoa de datos en la expresion de criterios.
muchas gracias de nuevo y un saludo.

¿En Filtr_MSN que tipo de datos metes o coge el combo?, o de otra forma ¿Raw_MSN qué tipo de datos almacena? Entiendo que no son texto, por eso el error.

Si son valores numéricos, tienes que poner esto:

miFiltro="[Raw_MSN]=" & Me.Filtro_MSN

y si son de tipo fecha, esto otro:

miFiltro="[Raw_MSN]=#" & Me.Filtro_MSN & "#"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas