Filtrado formulario continuo basado en una consulta.

Agradecería su colaboración y ayuda en un problema que tengo en mi base de datos. Quiero generar un filtro en un formulario continuo
Dispongo de un formulario creado a partir de una consulta de una tabla principal donde se recogen todos mis datos, como por ejemplo: Máquina, código, descripción, orden de fabricación, etc.
Dentro de este formulario he creado un cuadro combinado a partir de una tabla que contiene todas las Máquinas que dispongo.
Lo que necesito es generar un filtro que cuando yo seleccione un máquina en el cuadro combinado, el formulario continuo me filtre los datos de la consulta de la tabla principal, apareciéndome solo los datos de la máquina que yo he seleccionado.
A día de hoy no he sido capaz de conseguirlo, probé con la sentencia [Formularios]![nombre del formulario]![nombre del cuadro combinado], pero no me ha funcionado.
Supongo que debería aplicar un sentencia SQL, pero mi nivel sobre Access no llega hasta ese punto.

1 Respuesta

Respuesta
1
Antes de continuar, debes tener claro el valor que va a guardar el combo, como bien sabrás los cuadros combinados no tienen porque guardar el valor que muestran; por ejemplo en tu caso puede guardar el código de la máquina pero mostrar el nombre, si ya lo tienes claro (imagino que guardarás el identificador único de la máquina) continuamos:
Crea dos botones de comando (si salta el asistente cancela ya que vamos a decirle nosotros lo que vamos a hacer) uno para ejecutar el filtro y otro para mostrar todos los registros.
En el primero, el que va a filtrar, crea un procedimiento de evento Al Hacer Click y entre Private Sub y End Sub pones
If Me.COMBO.Value = "" Or IsNull(COMBO) Then
MsgBox "Debe seleccionar una máquina para filtrar", vbInformation, "Maquinas"
Else
Me.Filter = "Cod_Maquina = Forms![NOMBREFORMULARIO]![COMBO]"
Me.FilterOn = True
End If
En el segundo (anulo el filtro), crea un procedimiento de evento Al Hacer Click y entre Private Sub y End Sub pones:
DoCmd. ShowAllRecords
Como verás el primer botón coloca como filtro el valor del combo teniendo en cuenta que hace referencia al campo Cod_Maquina por eso la importancia del valor que guarda el cuadro combinado.
Perfecto! Muchísimas gracias, era una de las últimas cosas pendientes que me quedaban para terminar la base de datos. Te lo agradezco.
He comprobado por otra parte que en el cuadro combinado poniendo después de Actualizar la expresión. Me.Requery, me filtra directamente por la máquina que elija sin tener que quitar el filtro continuamente.
Gracias de nuevo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas