Filtrar un campo después de una consulta

Tanto tiempo. Tengo un formulario que lista los resultados de una consulta, es decir, selecciono de un cuadro combinado un elemento y la consulta me devuelve todos los registros que tienen esa elección.

Bien, en ese formulario de "respuesta" quiero agregar un ChkBox que al estar tildado no me muestre determinado dato de otro campo.

Ejemplo, selecciono en el CCdo "frutas", en el formulario que se abre me lista todas las frutas, pero al tildar el ChkBox, que hace eliminar "peras" del resulato desaparezcan las "peras".

Por un problema de diseño la consulta se ejecuta de un formulario donde al presionar un botón "buscar" abre el segundo formulario con el resultado.

No puedo, por razones de cómo está hecha la BD, buscar desde el mismo formulario que me da la respuesta. Ésto sí lo pude resolver (

1 Respuesta

Respuesta
2

Cuando dices que desparezcan las peras ¿te refieres a eliminar los registros que tengan peras? ¿A qué se oculte el cuadro de texto que contenga peras? ¿A qué no se muestren los registros que contengan peras?

Si pudieras concretar un poco más

si, perdón. había escrito aclarando pero no sé que pasó y cosas no salieron (se cortó en el paréntesis).

Que se eliminen los registros no, sólo que no se muestren , que ese ChkBox filtre. Es un formulario de consulta, no de eliminación.

Me ha ayudado mucho Jacinto en este trabajo hace unos meses.

No sé donde está la casilla de verificación, vamos a suponer que tengo una tabla Categorías, ya que tampoco sé como tienes construidos los formularios, con IdCategoria y Categoria, y una tabla Productos con Idcategoria, Producto, Precio

Supongamos que la casilla peras está en el mismo formulario que el combinado donde eliges las categorias, y que este combinado, al que llamo elegir tiene en su origen de la fila los campos IdCategoria y Categoria y que la columna dependiente es la 1

En el evento Despues de actualizar de la casilla Peras puedes poner

If Peras = -1 Then
DoCmd.OpenForm "productos", , , "idcategoria=" & Me.Elegir & " and producto<>""peras"""
End If

Cuando "marco" la casilla Peras

Pero como te decía no sé como lo tienes construido

Bien, primero gracias. La casilla de verificación la tengo en el formulario que da el resultado y no en el que elijo. Es decir, desde un formulario ejecuto la consulta que abre un nuevo formulario con el resultado. En éste segundo formulario es donde está la casilla, yo quiero que al estar desactivada muestre todo y al estar activada desaparezcan las "peras".

En el ejemplo que tú me das la casilla está en el formulario inicial y yo la necesito en el de respuesta. Por esto es que no puedo hacer la instrucción DoCmd.OpenForm.

Debería ser un filtro que no abra un nuevo formulario sino que actualice el ya abierto.

Entonces, en el evento después de actualizar del combinado, que ya te dije que su columna dependiente es la de IdCategoria ponle

DoCmd.OpenForm "productos", , , "idcategoria=" & Me.Elegir & ""

Con lo cual te quedaría

Elijo Frutas y 

Si ahora marcos la casilla Peras

Todo esto porque en el evento Después de actualizar de la casilla Peras, le he puesto

Es decir, que si Peras está marcado (-1 o True) que mire si el formulario donde está el combinado está cargado(que lo estará porque vienes de él) y en caso de que sea así que el origen de registros sean aquellos registros de la tabla Productos en que su idcategoría sea igual al que has elegido en el formulario1(que sería el tuyo de búsqueda) y que los productos sean distintos de peras.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas