|
Responder
|
| Autor | ||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Tema: Buscador múltiple con desplegablesEnviado: 13/Diciembre/2020 a las 10:17 |
|
|
Buenos días. Estoy intentando hacer un buscador en un formulario, pero llevo varios días, y no doy con una posible solución.
Tengo esto: Me voy a centrar en los desplegables, no en los checkboxes, que también uso para filtrar. Creo que si saco los desplegables, no me costará incluir los checkboxes. Hay tres posibles filtros: Estado > Formato > Género > Subgénero Año Añadido > Mes Añadido Año Leído > Mes Leído Para simplificarlo más, y que la respuesta sea más sencilla, cojamos solo los dos primeros (estado y año añadido). Quiero que, si elijo un estado, me muestre solo los registros relacionados del año añadido, y al revés, es decir, que si elijo un año añadido, me muestre los registros relacionados del estado. Además, que luego me permita filtrar los desplegables que dependan de estos (a saber, formato, que depende de estado; y mes añadido, que depende del año añadido) Por último, quiero añadir en cada desplegable una segunda columna con el número de valores de cada opción. Así: ¿Cómo he intentado hacerlo? La manera de conseguirlo que había pensado era utilizando la columna con el número de registros. De esta forma, en la consulta origen del desplegable le pondría una condición de que solo mostrara los que fueran mayor que cero, y ya lo tendría. Ahora bien, ¿cómo consigo ese valor para la segunda columna del desplegable? Tengo este código: Function Veces(Tipo As String, Filtro As String) As Integer Dim myFilter1 As String Dim rst As DAO.Recordset Dim Veces1 As String FilterCombo Tipo, Filtro, "Buscador" Veces1 = "SELECT Count(CQuery.Titulo1) AS Veces" _ & " FROM (" & myRecordSource & ") As CQuery" _ & IIf(myFilterCombo = "", "", " WHERE " & myFilterCombo & "") Set rst = CurrentDb.OpenRecordset(Veces1) If Not (rst.EOF And rst.BOF) Then Veces = rst("Veces") End If rst.Close Set rst = Nothing End Function Y esa función FilterCombo es esta: Sub FilterCombo(Tipo As String, Filtro As String, Optional Formulario As String = "") myFilterCombo = "" Select Case Formulario Case "Buscador" If Tipo = "Estado" Then If myFilterCombo <> "" Then myFilterCombo = myFilterCombo & " And " myFilterCombo = myFilterCombo & Filtro End If End Select If Tipo = "AñoAñadido" Then If myFilterCombo <> "" Then myFilterCombo = myFilterCombo & " And " myFilterCombo = myFilterCombo & Filtro End If End Sub He de decir que AñoAñadido no es un campo de la tabla, sino que lo calculo en función de la fecha. Cuando lo hago de esa manera, la segunda columna con el número de registros del segundo desplegable me muestra como si no hubiera aplicado filtro alguno. En la imagen, el número de registros del formulario son dos después de haberle aplicado el filtro del estado, pero en el desplegable del año añadido me muestra todos (en este caso, me tendría que salir solo 2019 - 2) Otra cosa que desearía conseguir es que, cuando elija un valor de este segundo desplegable y vuelva a entrar para elegir otra opción, efectivamente me salgan todas las opciones. Es decir, si escojo el Estado Comprar, y para el desplegable Año Añadido me dice que solo están disponibles los años 2019 y 2020, que cuando elija 2019, al volver a desplegar me aparezcan los dos años, y no solo el que he elegido. No sé si habrá otra opción más sencilla. Yo creo que esta que planteo no es demasiado complicada. Donde tengo el problema es a la hora de crear el filtro para la segunda columna con el número de registros. ¿Alguien podría ayudarme? ¡Gracias!
Editado por zelarra - 13/Diciembre/2020 a las 23:50 |
||
![]() |
||
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 13/Diciembre/2020 a las 12:49 |
|
|
Hola!
Es difícil, por lo menos para mí, darte una respuesta precisa al no disponer de los datos. No obstante, pienso que con una consulta/s con criterios se pueda conseguir lo que pretendes. |
||
|
Un Saludo.
|
||
![]() |
||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 13/Diciembre/2020 a las 12:54 |
|
|
Hola si quieres puedo subir una demo
|
||
![]() |
||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 13/Diciembre/2020 a las 13:12 |
|
|
Mira, aquí tienes la base de datos con datos
He intentado hacer una consulta, como tú dices, tomando el RecordSource del formulario, pero no sé cómo plantearlo para conseguir lo que quiero. Si pudieras darme una pincelada de cómo hacerlo, o algún ejemplo que tengas hecho que pueda servirme para fijarme, te lo agradecería. Muchas gracias.
Editado por zelarra - 13/Diciembre/2020 a las 13:12 |
||
![]() |
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 13/Diciembre/2020 a las 18:54 |
|
|
Mejor que pongáis todo por escrito, que de aquí a un tiempo los archivos se borran y las respuestas y el trabajo se pierden en el limbo.
|
||
![]() |
||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 13/Diciembre/2020 a las 18:58 |
|
|
Hola, Mihura. Te juro que me gustaría hacerlo, pero no puedo adjuntar ni imágenes ni archivos. No me da la opción. En una pregunta que hice hace algún tiempo lo comenté, pero quedó en nada.
Editado por zelarra - 13/Diciembre/2020 a las 19:03 |
||
![]() |
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 13/Diciembre/2020 a las 19:11 |
|
|
No se pueden adjuntar archivos porque no queremos que se adjunten.
Se trata de que lo expliques con palabras, ... posteando el código usado, etc. |
||
![]() |
||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 13/Diciembre/2020 a las 19:12 |
|
|
Vale, vale. Entendido. Yo solo es que algunas veces me gusta apoyar lo que explico con imágenes, porque transmitirlo con palabras puede ser difícil. Aún así, muchas gracias.
|
||
![]() |
||
mounir
Colaborador
Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6521 |
Enviado: 13/Diciembre/2020 a las 23:06 |
|
|
Hola!
He creado dos consultas para en combo "Estado1", una de selección simple y otra sobre esta agrupada, lo mismo para el combo "Año añadido". Y lo que hice es al actualizar un combo cambia el origen de la fila del otro. Te reenvía la base de datos. Espero que sea eso lo que quieres. http://www.filebig.net/files/YeRgtHA3WT |
||
|
Un Saludo.
|
||
![]() |
||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 13/Diciembre/2020 a las 23:49 |
|
|
Sí, me vale. Muchas gracias, mounir.
|
||
![]() |
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 14/Diciembre/2020 a las 09:22 |
|
|
Antes de dar por cerrado el hilo, postead la solución dada.
|
||
![]() |
||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 14/Diciembre/2020 a las 10:04 |
|
|
Básicamente, lo que he hecho ha sido crear una consulta con los datos que quiero que muestre el desplegable, y ponerle en la condición el desplegable del formulario. Luego, en el formulario, solo hay que establecer el origen de la fila tomando como origen de la consulta la consulta creada al efecto, en el evento después de actualizar del desplegable anterior. No sé si he conseguido explicarme.
|
||
![]() |
||
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador
Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14428 |
Enviado: 14/Diciembre/2020 a las 10:19 |
|
|
Pues muestra como ha quedado esa consulta ....
Piensa en que tú eres un usuario que tiene un problema similar y está leyendo el hilo, ... ¿a que te vendría de perlas ver la consulta? ... pues eso
. |
||
![]() |
||
zelarra
Habitual
Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 14/Diciembre/2020 a las 15:22 |
|
|
Sí, sí, disculpa. Aquí está:
Muchas gracias, chicos, por la ayuda. No he podido escribir este mensaje hasta ahora. Normalmente habría podido al momento, porque tengo el ordenador al lado mientras estudio, pero se me ha liado la mañana un cosa bárbara. De todas formas, para cualquier aclaración me podéis escribir, que si puedo ayudar, lo haré encantado. Un saludo.
|
||
![]() |
||
Responder
|
|
|
Tweet
|
| Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |