Formulario access para filtrar 3 subforms

Feliz año 2012 a todos/as!
intento hacer un formulario donde pongas una palabra y me filtre otros 3 subformularios que contengan esa misma palabra en un cuadro de texto.
Hasta el momento he podido hacer que si la palabra es igual que todo el campo del cuadro de texto del subformulario me lo filtre, pero no se como puedo hacer para que me lo filtre si contiene esa palabra en el campo aunque el campo de texto sea de muchas mas palabras.. No se si me explico..
tengo un formulario con un cuadro de texto (de una palabra sola para hacer preguntas)(puedo poner combo si hace falta), y tengo 3 subformularios de tres tblas diferentes, pero cada subformulario tiene un campo (texto) con diversas palabras.
Quiero que cada vez que ponga un valor en el cuadro texto de formulario me filtre los tres subformularios por si contienen la palabra en sus campos de texto
espero una respuesta..que los expertos de esta web saben mucho!!
muchas gracias!!!
Marcux
Respuesta
1
Cuando tenga un momento te contesto. Don't worry ;)
Neckkito
Te voy a poner un ejemplo con dos subformularios. Como verás, la mecánica es muy simple, por lo que lo podrás extrapolar a tus tres formularios.
Voy a suponer lo siguiente:
- El cuadro de texto donde introduces la palabra a buscar lo he llamado txtFiltro
- El formulario principal lo he llamado FPpal
- El primer subformulario lo he llamado subFrmSec1
- El segundo subformulario lo he llamado subFrmSec2
- El campo de los subformularios que contiene los datos lo he llamado [CampoBuscado]
Tú deberás cambiar esos nombres por los de tu BD.
Suponiendo también que escribes el valor y pulsas un botón para ejecutar la búsqueda, el código que debes aplicar a ese botón sería el siguiente:
...
Private Sub ...
Dim vDato As String
vDato = Me.txtFiltro.Value
'Analizamos el primer subformulario
With Me.subFrmSec1.Form
.Filter = "[CampoBuscado] LIKE '*" & vDato & "*'"
.FilterOn = True
End With
'Analizamos el segundo subformulario
With Me.subFrmSec2.Form
.Filter = "[CampoBuscado] LIKE '*" & vDato & "*'"
.FilterOn = True
End With
End Sub
...
Vas a necesitar un segundo botón que te elimine los filtros, para que te pueda volver a mostrar todos los registros. Como Access se hace un poco "la picha un lío" (con perdón de la expresión) con los subformularios que están filtrados o no la solución más práctica es cerrar y volver a abrir el formulario. El código sería
...
Private Sub...
DoCmd. Close acForm, Me. Name
DoCmd. OpenForm "FPpal"
End Sub
...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas