Introducir un valor en una consulta mediante un cuadro combinado

En una consulta tengo puesto un criterio del tipo: [Teclee matrícula:] para que cuando ejecute la consulta me pida una matricula para luego hacer la búsqueda de los registros que sean igual a ella.

El caso es que me gustaria que en vez de mostrarme el cuadro de diálogo, con el cual puedo equivocarme la teclear la matrícula, me mostrara un cuadro combinado en el que pudiese elegir la matrícula que previamente habría introducido.

2 respuestas

Respuesta
2

En las consultas no lo puedes hacer, pero si en un formulario, los lenguajes son diferentes. Vamos a suponer que tienes una tabla Clientes, con, entre otros campos Matricula. Con esa tabla construyes un formulario, da igual que sea único o continuo. En el encabezado del formulario le añades un cuadro combinado(en sus propiedades-otras-Nombre ponle, por ejemplo, Elegir) y en el origen de la fila ponle

Select matricula from clientes;

Y en sus propiedades-Eventos-Después de actualizar ponle

me.recordsource="select * from Clientes where matricula='" & me.elegir & "'"

Así, cuando elijas una matrícula, el origen de registro del formulario será aquel de la tabla Clientes en que su matricula sea igual a la que has elegido.

Solo te molestaré con esta última pregunta. He intentado lo que me dices pero no me va bien. Verás:

Tengo una tabla llamada vehículos. Entre otros, con un campo llamado MATRICULA

Tengo otra tabla llamada averías, también con un campo llamado MATRICULA

Y por ultimo una consulta a la que quiero poner un cuadro combinado donde elegir la matrícula del vehículo del cual quiero obtener las averías registradas y mostrarlas en un informe. Todo me funciona bien pero cuando ejecuto la consulta me gustaría que en vez de un cuadro de texto, pudiera elegir la matricula con un cuadro combinado.

Gracias de nuevo y te aseguro que es mi ultima pregunta

Ya te he dicho que en la consulta no puedes poner un combinado. Lo que si puedes hacer es poner, en una consulta hecha con la tabla Averías, debajo del campo Matricula, en la casilla de criterios

Forms! Nombredelformulario! Nombredelcombinado

Y en el combinado del formulario que te cité antes, donde elegías las matrículas, en el evento Después de actualizar poner

Docmd. Openquery"nombredelaconsulta"

Así, cuando elijas una matrícula, y te vaya a abrir la consulta sólo te mostrará aquellos registros de la tabla Averias cuya matrícula coincida con la que has elegido en el combinado.

Respuesta
1

Yo te hago otra propuesta, partiendo de que desde la consulta es imposible hacerlo:

1º/ Creas un formulario con un cuadro combinado que devuelva los valores por los que quieras filtrar (matrículas en tu caso, pero asegúrate de que no devuelva un posible identificador de tu tabla). El formulario lo llamará frmBuscar y el cuadro combinado cboMatricula

2º/ Añade un botón a tu formulario y ponle una macro incrustada que te abra tu consulta o el código:

DoCmd. OpenQuery "NombreConsulta"

3º/ Abre tu consulta en vista diseño y cambia el criterio que tienes ahora por este otro:

[Formularios]![frmBuscar]![cboMatricula]

De esta forma, cuando selecciones matrícula en el combinado y pulses el botón, se te abrirá la consulta filtrada. Incluso puedes hacerlo sin botón, seleccionando un valor en el combo y abriendo la consulta "a mano" (siempre sin cerrar el formulario)

Un saludo.


bit.ly/NkSvAcademy   /    bit.ly/ForoNkSv 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas