¿Como personalizar botón filtrado de formularios?

Pues imagino que la pregunta es muy sencilla pero debo tener el día tonto porque no doy con ello... El tema es muy sencillo (o al menos así me lo parece)... Lo que quiero hacer en un formulario es únicamente meter un botón de filtrado pero que se pueda personalizar con el contenido a buscar... Es decir... Tengo un formulario dónde me aparecen actividades, 500 diferentes, (cada actividad a su vez es un formulario, donde se describen días, horarios, etc...). La única opción que encuentro es el botón de filtrado de formulario dónde YO TENGO que escribir el contenido de ese filtro, hasta ahí bien, pero lo que busco realmente, es un botón similar pero que ya me filtre un contenido concreto (por ejemplo con "17/18"), de forma que pueda colocar varios botones con diferentes filtrados de formulario ("año", "siglas del colegio", "actividad concreta de forma que me salga solo esa actividad pero de todos los años...) etc.

¿Alguna sugerencia?

1 Respuesta

Respuesta
2

Permíteme un comentario ¿500 formularios?

Puedes hacerlo de muchas formas. Por ejemplo, en un botón puedes poner, en el evento Al hacer clic

Dim a As String
a = InputBox("Introduzca una nombre para abrir", "Formularios")
DoCmd.OpenForm "" & a & ""

Así, cuando pulses el botón te dirá que pongas un nombre, lo escribes, aceptas y te abre ese formulario en particular

O, por ejemplo

docmd.openform"arbitros",,,"temporada=2017"

O, suponiendo que tengas un botón llamado Comando8, y en su título tengas Alemania

DoCmd.OpenForm "clientes", , , "Pais='" & Me.Comando8.Caption & "'"

Así, al pulsarlo te abrirá el formulario Clientes con aquellos en que su país sea Alemania

Pues no consigo dar con ello... para el botón de filtro y luego poner lo que yo quiera sin problema... pero el tema es que quiero es un botón como en la imagen que al pulsar me aplique el filtro directamente... el problema, a priori veo, es que no tengo un campo único a filtrar.. ya que lo que quiero filtrar esta dentro del campo.. "ejemplos... 17/18 Fútbol, 16/17 Ludoteca I, 17/18 Ludoteca II, 16/17 Fútbol"... el botón de busco es por ejemplo filtre 17/18.. de forma que me filtraría todas los cursos que contengan ese año... o "Fútb" de forma que me filtre todos los cursos de todos los años que contengan Futb.

Te adjunto la imagen de la pantalla en cuestión. 

Un saludo y gracias!!!  
Y por cierto.. imagino que al ver el diseño entenderás lo de los 500 "formularios"  XDDDDD

¿Que te abra todos los formularios que contengan 16/17? Que yo sepa no se puede. Los formularios se abren de uno en uno. Si en una tabla tuvieras los nombres de todos los cursos podrías poner esa tabla como un subformulario, al que llamaremos Cursos y en el evento al hacer clic de un botón poner

Cursos.Form.RecordSource = "select * from clientes where pais like ""*""&[escriba una cadena] & ""*"""

Entonces, cuando pulses el botón te diría lo de escribe una cadena, escribes 16 y el origen de registros del subformulario serían aquellos nombre de la tabla que en su nombre tuvieran la cadena 16, por ejemplo, Lengua 16/17, Matemáticas 2016, 1600 boulevard, etc. Luego, ya dentro del subformulario si puedes decirle que te abra éste u otro formulario.

Por ejemplo, tengo el formulario de la imagen, en que el subformulario está basado en la tabla Clientes.

Si pulso el botón y escribo AL, cuando pulse aceptar

el resultado es

Es decir, aquellos países que tienen la cadena al, como ALemania, itALia, portugAL

Luego, si quiero, hago clic en un registro y me abre lo que quiera.

A ver.. que lo mismo no me estoy explicando bien... más o menos se traduce en lo que estas haciendo con tablas pero en formularios... el objetivo es no tener que escribir ninguna cadena sino que con pulsar el botón salga directamente... te adjunto imágenes de como efectivamente si me filtra con un sencillo botón de filtrado pero en el cual tengo que escribir la dichosa cadena... el objetivo repito, sería evitar esa cadena...

FILTRO PONIENDO "17/18"

FILTRO PONIENDO "FAMA"

Lo que te puse en la imagen no era una tabla, es un formulario en vista hoja de datos.

Voy a intentar explicarme. Lo que yo haría, si tengo una tabla como el la imagen

Haría una copia de ella pero sólo la estructura, sin ningún valor, y la llamaría, por ejemplo Aux. Con esta última haria un formulario tabular, le quitaría el encabezado del formulario y le llamaría, por ejemplo Cursos.

Luego construiría un formulario y le pondría como subformulario el formulario Cursos como en la imagen

Luego en el evento al hacer clic del botón de título 16/17, que en este caso se llama (propiedades-Otras-Nombre) comando0

Cursos.Form.RecordSource = "select curso from cursos where curso like ""*"" &'" & Me.Comando0.Caption & "' & ""*"" group by curso"

Así, cuando el formulario estuviera abierto te aparecería como

Si pulso el botón

En el caso de la Cadena, al pulsarlo, me aparecería

Como ves escribo AR y al aceptar

En este caso el código, en el mismo evento Al hacer clic es

Cursos.Form.RecordSource = "select curso from cursos where curso like ""*""& [Escriba una cadena del nombre] & ""*"" group by curso"

¡Gracias! Pues como lo que no quería era meterme en cambiar toda la apariencia y demás por el volumen de datos que tenía.. y contando que no soy programador XDDDD  he conseguido hacerlo mediante otra manera... creando una consulta  y luego creado una macro que ejecute la consulta con un botón en el formulario... pero muchísimas gracias por tu tiempo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas