Consulta obtenida desde una tabla

Estoy perfilando mi base access 2007 y me gustaría poder hacer lo siguiente (y no lo consigo). Tengo una consulta donde obtengo un filtrado de los registros, pero quisiera que al ejecutarla me pidiera que escoja un valor de los distintos que hay en una tabla. ¿Es posible?
Ya se que puedo poner la pregunta entre corchetes en criterios, pero eso me obliga a escribir exactamente el contenido del registro a filtrar, y quiero evitarlo haciendo que access me pida qué valor de la tabla deseo.

1 Respuesta

Respuesta
1
Puedes hacerlo a través de un cuadro combinado. Te pongo un ejemplo:
1.- En un formulario (lo llamaremos "Form1" pones un cuadro combinado. Con el asistente le seleccionas la tabla y el campo del cual necesitas el dato.
2.- Sacas las propiedades del combo y te vas a la pestaña Otras->Nombre, y ahí le escribes cboDato
3.- Aún en las propiedades del combo, te vas a la pestaña Eventos->Después de actualizar... Si te pones sobre el espacio en blanco que hay a su derecha te aparecerá un pequeño botón de puntos suspensivos. Si haces click sobre él se te abrirá una ventana. Le dices que quieres generar código.
4.- Se te abrirá el editor de VB (VBE), con dos líneas por defecto (Private Sub... y End Sub). No tienes que tocar esas líneas. En medio de ellas escribes lo siguiente
---
Private Sub...
Dim vDato as Variant
vDato = Me.cboDato.Value
If IsNull(vDato) Then Exit Sub
DoCmd. OpenQuery "NombreConsulta"
---
Donde "NombreConsulta" debe ser cambiado por el nombre de tu consulta (tiene que ir entre comillas).
Ya hemos acabado con el formulario. Vamos a por la consulta.
5.- Sitúas la consulta en vista diseño. Te vas al grid de la consulta, al campo donde quieres aplicar el filtro. En la línea de "Criterios:" escribes lo siguiente
=Forms![Form1].cboDato.Value
Debes cambiar Form1 por el nombre de tu formulario.
Y ya está. Puede no funcionarte porque el cboDato, según como tengas estructurada tu tabla, puede coger como valor el de la clave principal. Si fuera así sacas las propiedades del combo y te vas a la pestaña Datos->Columna dependiente, y le escribes un 2 (en vez del 1 que probablemente te salga).
Si tienes algún problemilla me lo comentas, e intentamos arreglarlo.
Gracias por tu respuesta.
Tu propuesta no me ha funcionado y, por más que lo repaso, no veo error alguno. He repetido tres veces la operación.
Si te sirve de orientación, cuando abro la consulta me pide (introduzca valor del parámetro). Observo que a pesar de introducir tu sugerencia =Forms![Form1].cboDato.Value, Acess me la transforma automáticamente a [Forms]![Form1].[cboDato].[Value]
No observo nada más de extraño. ¿Qué puede suceder?
Haz una cosa:
En tu formulario de trabajo crea un botón de comando, y al evento hacer click le escribes este código:
---
Private Sub...
msgbox Me.cboDato.Value
End Sub
---
Ahora selecciona un valor en el combo y dale a ese botón. ¿Qué te dice el mensaje que te aparece?
Por cierto, es normal que Access te "transforme" lo que escribes. Ni caso.
Ya me dirás.
Neckkito
Pues no dice nada. No parece que provoque ninguna acción.
¿Tienes posibilidad de enviarme una copia de tu BD comprimida en zip o rar? Si hay registros confidenciales puedes borrarlos, pero por favor deja dos o tres para poder testear.
También te rogaría que me identificases el nombre del formulario donde tienes ese combo.
Mi correo es: [email protected]
Si me lo envías no cierres la consulta, puesto que si no recibiera el mail no tengo manera de ponerme en contacto contigo si la consulta está cerrada.
Bueno... "a distancia" no puedo hacer mucho más ;)
Ya me dirás.
Acabo de enviarte el correo que me pides.
Un cordial saludo.
OK. Recibido. Te digo cosas.
Neckkito

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas