Consulta eligiendo Valor en una lista

Me gustaría hacer una consulta en la que pueda elegir el valor a buscar en una lista, pero no lo consigo, solo lo puedo hacer escribiendo directamente el valor en un cuadro de diálogo, pero es que son nombres de clientes y si lo pones mal no busca nada, por lo que me gustaría si es posible poder elegir el cliente que quiero buscar en una lista.
¿Es posible?

1 respuesta

Respuesta
1
Te explico cómo puedes hacerlo a través de un cuadro de lista, pero también te serviría para hacerlo a través de un combo.
Voy a suponer que en la tabla donde tienes identificados los clientes tienes, como mínimo, dos campos, que yo llamaré
[IdCliente] -> Autonumérico y clave principal
[Cliente] -> Texto
También supondré que la consulta se llama CFiltraClientes.
Todos estos valores que yo estoy suponiendo después tú los debes cambiar por los nombres que tengas en tu BD
Vamos allá:
1.- Creas un formulario en blanco. Lo guardamos como FBusca
2.- En ese formulario añades un cuadro de lista. Te saldrá el asistente. La configuración mínima básica de esa lista sería así:
- Buscar los valores en una tabla, y seleccionamos la tabla donde tienes los datos de los clientes
- Añades los dos campos que antes te comentaba: [IdCliente] y [Cliente]
- Si ordenas ascendente por [Cliente] te mostrará los clientes por orden alfabético
- Le dices que oculte la clave principal
- Finalizas el asistente
3.- Sacas las propiedades del cuadro de lista y te vas a la pestaña Otras->Nombre, y ahí le escribes lstClientes
4.- Ahora creas un botón de comando, que será el que te abrirá la consulta al hacer click. Sacas sus propiedades y te vas a la pestaña Eventos->Al hacer click. Verás que hay un pequeño botón de puntos suspensivos. Lo pulsas y en la ventana que te sale le dices que quieres generar código.
5.- Se te abrirá el editor de VB, con dos líneas por defecto (Private Sub... y End Sub). Esas líneas no debes tocarlas. En medio de ellas escribes lo siguiente:
---
Private Sub...
DoCmd.OpenQuery "CFiltraClientes"
End Sub
---
6.- Ahora sólo nos queda configurar la consulta CFiltraClientes. La abres en vista diseño y el campo [IdCliente] debe estar en el grid de la consulta. Si no lo está lo arrastras hasta ahí (puedes desmarcar el check Mostrar si no quieres que se vea). En la línea correspondiente a "Criterios:" escribes lo siguiente:
Forms!FBusca.lstClientes.Value
Y eso es todo. Si tienes algún problemilla me comentas.
Buenas tardes:
Te agradezco mucho la respuesta y la rapidez.
Lo he intentado y no se porqué no me sale. Algo estaré haciendo mal, pero no acierto. Te cuento:
Tengo 1 tabla llamada Obras con 3 campos (Número, Nombre y Cliente), pero también tengo una tabla Lista_Cientes con 2 columnas; IdCliente y CLIENTE, esta tabla no tiene duplicados y la he usado para crear un cuadro cambinado en el formulario de entrada de datos así no hay que escribir todos los nombres de clientes sino que lo seleccionas de la lista y si no está lo añades y listo.
No tengo claro cual de las 2 tablas elegir para esto, he probado con las dos y al final el resultado es el mismo.
He seguido tus pasos...
1.- Creo el formulario (Lo llamo FBusca), inserto el cuadro de lista o combinado (lo llamo IstCliente). En el mismo Formulario creo el botón (Me sale el asistente y selecciono Otras-Ejecutar consulta. Selecciono la Consulta CFiltraClientes)
2.- En el cuadro de propiedades del Botón; Generar Evento, Generar código, escribo entre Private Sub y End Sub y queda de esta manera
Private Sub Boton_Click()
DoCmd.OpenQuery "CFiltraClientes"
End Sub
3.- Abro la Consulta CFiltraClientes en vista diseño (incluyo todos los campos de la lista aunque solo quiero que se vea Cliente ) y en Criterios del campo Cliente escribo "[Forms]![FBusca].[lstCliente].[Value]"
Pero al comprobar los resultados... abro el formulario y el cuadro combinado funciona, pero el botón me abre un cuadro de diálogo que me dice "Formularios!FBusca.lstClientes.Valor"
Y ponga lo que ponga me lleva a la hoja de datos de resultados de la consulta vacía, eso si, si pincho en la linea, se me despliega el cuadro combinado...
Que desastre!
¿Otra ayudita?
Mil gracias
El proceso te falla, con toda probabilidad, porque hay algún tipo de relación que está mal hecha, o porque hay alguna tipología de datos que no "casa".
A distancia es un poco difícil darte una solución sin ver cómo tienes estructurada tu BD.
¿Existiría la posibilidad de que me pasaras una copia de tu BD comprimida en zip o rar? Si quieres borra los registros si tienes información "confidencial". Yo le podré echar un vistazo y, si lo sé, te podré decir qué funciona mal y cómo arreglarlo.
Mi correo es [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas