Como puedo filtrar un su formulario mediante cuadro de lista de selección simple anidado en el formulario a dos cuadros combinad

Tengo un formulario con datos de una consulta, en este he colocado tres cuadros combinados y un cuadro de lista de selección simple anidados entre sí, en el cuadro de lista necesito seleccionar varios registros para obtener el resultado en él su formulario. Si lo realizó en vez de un cuadro de lista con un cuadro combinado me funciona perfectamente, pero si lo realizo con cuadro de lista, no realiza su función. El origen del subformulario es la misma consulta. La extractora de la consulta es .

Campo 1 nombre de provincia, campo 2 nombre de municipio, campo 3 población, campo 4 número de habitantes, campo 5 área, etc.., lo que pretendo es en el formulario primer cuadro combinado filtro por Provincia, como está anidado en el segundo cuadro filtro por municipio y en el cuadro de lista quiero filtrar por una o más poblaciones, devolviéndome en el subformulario, los registros correspondientes del resto de campos, número de habitantes, área, etc.. No sé si me explicado lo suficiente pero si alguien me puede echar un cable para resolverlo, le estaría muy agradecido.

1 Respuesta

Respuesta
2

José: En Mediafire tengo un par de ejemplos, que hacen lo que comentas.

Lo que ahora no recuerdo es el que es idéntico, solo que lo hace con Países, Empresas, Profesiones..

http://www.mediafire.com/file/c6ms6z88tyhe1rq/BuscarTBoxCboBoxLBox.rar 

Y el otro

Un saludo >> Jacinto

¡Gracias! muchas gracias probaré en mi BD, si tengo algún problema te comento y si no también. 

José: Para refrescar las ideas sobre el tema he probado el Ejemplo del primer enlace.

Si quieres ver de forma rápida su funcionamiento elige.

País >> Inglaterra. Empresa >> Hidroelectrica Montañas y en el ListBox como Profesiones elige >>

Abogado e Ingeniero. Un saludo >> Jacinto

Gracias Jacinto por tu ayuda, pero cuando intento adaptarlo a mi necesidad, me da un error 3075 Error de sintaxis, la verdad es que soy neófito en este tema, pero te prometo que me voy aplicar. Para realizar el ensayo, he cogido tu BD del primer enlace y la he adaptado como si fuera la BD que pretendo trabajar, he modificado en el formulario el origen de la fila en campo País, campo empresa y campo ListaProfesion anidándolas entres ellas, funciona todos los filtros menos el Botón de Buscar, si me puedes ayudar te lo agradezco.Estos son los cambio realizados en tu BD, pues la mía para ensayar es muy pesada.

Campo CboPais:
Origen de la fila: SELECT DISTINCT [QryDatosClientes].[Pais] FROM [QryDatosClientes] ORDER BY [Pais];
Evento al cambiar:
Private Sub CboPais_Change()
CboEmpresa.Requery
End Sub
Campo CboEmpresa:
Origen de la fila: SELECT DISTINCT QryDatosClientes.NombEmpresa, QryDatosClientes.Pais FROM QryDatosClientes WHERE (((QryDatosClientes.Pais)=[Formularios]![Buscador]![CboPais])) ORDER BY QryDatosClientes.NombEmpresa;
Evento al cambiar:
Private Sub CboPais_Change()
CboEmpresa.Requery
End Sub
Campo ListaProfesion;
SELECT QryDatosClientes.Profesion, QryDatosClientes.Pais, QryDatosClientes.NombEmpresa FROM QryDatosClientes WHERE (((QryDatosClientes.Pais)=[Formularios]![Buscador]![CboPais]) AND ((QryDatosClientes.NombEmpresa)=[Formularios]![Buscador]![CboEmpresa]));
Eventos: Ninguno

Una aclaración en mi BD el campo ListaProfesion es numérico.

Muchas Gracias

José: En unos días lo miro y te comento, por cuestiones de tiempo disponible.

Lo que si me ayudaría es una captura del mensaje de error, para ver si me da una pista.

Un saludo >> Jacinto

¡Gracias! Agradecido el error que da es el siguiente:

Se ha producido el error 3075 en tiempo de ejecución 

Error de sintaxis (falta operador) en la expresión de consulta [IdEmpresa]= AND    

[IdPais] =,

Muchas gracias por tu ayuda.

José: La exlicación para corregir lo que me comentas es un poco extenso y por ello he preferido modificar el ejemplo en la línea de lo que pides.

El enlace de descarga es:

http://www.mediafire.com/file/9pkazz22qcw95ze/BuscaCboBoxLBoxJHin.rar 

Visualmente ha cambiado poco, pero el código lo he modificado en varios sitios, porque cambia el tratamiento de los componentes del filtro, según sea Numérico o de Texto.

Si vas haciendo la comparación con el Ejemplo inicial, verás donde está modificado y almismo tiempo seguro que te ayudará a entenderlo mejor. Un saludo >> Jacinto

Muchas gracias por tu ayuda, te ruego que tengas paciencia con migo y te pido disculpas por ello, he estado adaptando tu código en mi BD, y me ha surgido un problema que me impide avanzar, si pudieras darme tu opinión te lo agradezco.

Cuadro Combinado NOM_PROVINCIA:
SELECT DISTINCT Potencias_por_Municipio.NOM_PROVINCIA FROM Potencias_por_Municipio;
Cuadro Combinado NOM_MUNICIPIO:
SELECT DISTINCT Potencias_por_Municipio.NOM_MUNICIPIO, Potencias_por_Municipio.NOM_PROVINCIA FROM Potencias_por_Municipio WHERE (((Potencias_por_Municipio.NOM_PROVINCIA)=[Formularios]![Buscador]![NOM_PROVINCIA]));
Cuadro de Lista:
ELECT Potencias_por_Municipio.IdPoblacion FROM Potencias_por_Municipio WHERE (((Potencias_por_Municipio.NOM_PROVINCIA)=[Formularios]![Buscador]![NOM_PROVINCIA]) AND ((Potencias_por_Municipio.NOM_MUNICIPIO)=[Formularios]![Buscador]![NOM_MUNICIPIO]));


Todo se filtra según previsto, pero al hacer click en Boton de Buscar me sale el siguiente error, seguiré ensayando.

Gracias de nuevo

Muchas gracias por tu ayuda, te ruego que tengas paciencia con migo y te pido disculpas por ello, he estado adaptando tu código en mi BD, y me ha surgido un problema que me impide avanzar, si pudieras darme tu opinión te lo agradezco.

Cuadro Combinado NOM_PROVINCIA:
SELECT DISTINCT Potencias_por_Municipio.NOM_PROVINCIA FROM Potencias_por_Municipio;
Cuadro Combinado NOM_MUNICIPIO:
SELECT DISTINCT Potencias_por_Municipio.NOM_MUNICIPIO, Potencias_por_Municipio.NOM_PROVINCIA FROM Potencias_por_Municipio WHERE (((Potencias_por_Municipio.NOM_PROVINCIA)=[Formularios]![Buscador]![NOM_PROVINCIA]));
Cuadro de Lista:
ELECT Potencias_por_Municipio.IdPoblacion FROM Potencias_por_Municipio WHERE (((Potencias_por_Municipio.NOM_PROVINCIA)=[Formularios]![Buscador]![NOM_PROVINCIA]) AND ((Potencias_por_Municipio.NOM_MUNICIPIO)=[Formularios]![Buscador]![NOM_MUNICIPIO]));


Todo se filtra según previsto, pero al hacer click en Boton de Buscar me sale el siguiente error, seguiré ensayando.

Gracias de nuevo

José: Ahora acabo de ver tu correo y en una primera lectura, de acuerdo con el mensaje de error, parece que buscas una población que no existe. Mañana lo miro con un poco más de atención.

En cualquier caso si en los objetos involucrados en esas búsquedas no tienes datos Personales/Confidenciales, puedes mandarme la BD o parte de ella a [email protected]

Un saludo >> Jacinto

José: Es dificil para mí ver exactamente la causa del error.

De acuerdo a lo que veo, solo hay implicados en esa parte del código una Tabla y un Formulario.

A no ser que tengas otros campos además de lo que expones, no aprecio que haya datos Confidenciales, y si los hubiera puedes borrarlos o cambiarlos por datos inventados.

Te comento ésto porque lo mejor sería tener delante la Tabla e intento ayudarte si me lo envías al correo que te cité anoche. Un saludo >> Jacinto

Hola Jacinto, Acabo de salir del curro, y volviendo a repasar todos los parámetros, me he dado cuenta del problema, en el listadoPoblacion en su consulta, al dejar el campo IdPoblacion seleccionada como no visible, la consulta generada, producto del filtro total,  me daba el error, ahora al hacerlo visible va perfecto, perdona mi torpeza. Una pregunta al crear un botón de macro dentro de Subformulario, para exportación a Excel no Funca, es necesario crear un módulo para ejecutarlo....?. Muchísimas gracias por tu ayuda es de agradecer en este mundo cada vez más individualista.Ojala hubiera mucha gente como tú. Gracias de nuevo.

José:Hay varias maneras de Exportación desde Access.

Un ejemplo bueno (que es de Emilio Sancha) y que comtenpla algunas lo puedes encontrar en éste enlace.

http://www.mvp-access.es/emilio/Access/Descargas.asp 

El Ejemplo es el Número 221 - 04/14 y cuando lo abres el el Número 217.

Además tiene la utilidad de medir el tiempo después de muchos procesos de cada modo.

Mis saludos >> Jacinto

Muchas gracias por la aportación, seguiré aprendiendo. Estoy adaptando tus soluciones a mi BD, espero que tenga suerte.

Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas