Filtro de subformulario desde Cuadro de lista

Estoy montando un formulario en ACCESS 2003 y necesito filtrar un subformulario mediante un cuadro de lista independiente situado en el formulario principal (que ha sido a su vez filtrada por otras 2 listas a las que se vincula)
La estructura es más o menos así:
1) Formulario principal:
- Cuadro de lista 1: "Municipio" (filtra el Cuadro de lista 2)
- Cuadro de lista 2: "Manzana" (filtra el Cuadro de lista 3)
- Cuadro de lista 3: "Referencia" (DEBERÍA filtrar el Subformulario 1 por el campo "NumRef")
- Subformulario 1: "Locales" (debería mostrar sólo los registros de los locales que tuvieran el número de referencia seleccionado en el Cuadro de lista 3)
¿Me podríais indicar qué debo poner en los eventos del Cuadro de lista 3?
Para el filtrado de los cuadros de lista entre sí usé el evento "Me.Refresh" en "Al hacer click", con orígenes de datos condicionados a las respuestas de cada cuadro anterior... (lo cogí de una de tus respuestas a otro usuario y funciona perfectamente)

1 Respuesta

Respuesta
1
Lo que haremos es actualizar el origen del control del subformulario desde la acción al hacer clic del cuadro de lista 3:
Me. Refresh
Me!Locales.Form.RecordSource = "Select los campos que sean from Locales where Referencia='" & Form!CuadroLista3.Value & "'"
Me cuentas.
Buenas otra vez Ángeles.
Lo primero: muchas gracias por tu ayuda.
Lo segundo: he construido la siguiente cadena siguiendo tus indicaciones:
Me![03-Fincas].Form.RecordSource = "SELECT [03-Fincas].pcatastral1 WHERE pcatastral1='" & Form![Lista-fincas].Value & "'"
Donde:
- "03-Fincas" es el nombre del subformulario que he insertado y que quiero filtrar
- "pcatastral1" es el nombre del campo del subformulario por el que quiero filtrarlo rescatando el dato del cuadro "Lista-fincas"
- "Lista-fincas" es el cuadro de lista con el que quiero filtrar.
El mensaje de error que me 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 '[03-Fincas]. pcatastral1 WHERE pcatastral1='0115502'
."
(Donde '0115502' es la referencia que he elegido en el cuadro de lista "Lista-fincas", claro está.)
¿Me puedes echar una mano? ¿Qué problema hay? ¿Qué operador falta?
(Perdona que haya cambiado los nombres de listas y subformulario desde la anterior entrada.)
Muchísimas gracias otra vez.
Al ser el campo de texto, prueba a poner el valor del cuadro directamente, sin pasarlo a cadena:
Me![03-Fincas].Form.RecordSource = "SELECT [03-Fincas].pcatastral1 WHERE pcatastral1=Form![Lista-fincas].Value"
Hola de nuevo.
He probado a introducir lo que me dices en el evento "Al hacer click" del cuadro de lista "Listafincas" tanto en el "Generador de códigos" como directamente y en ambos casos me da error.
- En el primero (introduciéndolo en el editor de VBA) me dice lo siguiente:
"Se ha producido el error '3075' en tiempo de ejecución:

Error de sintaxis (falta operador) en la expresión de consulta '[03-Fincas]. pcatastral1 WHERE pcatastral1=Form![Lista-fincas].Value
"
- Por otro lado, si introduzco directamente (sin entrar en el editor VBA): = "SELECT [03-Fincas].pcatastral1 WHERE pcatastral1=Form![Lista-fincas].Value" sencillamente no me dice ni hace nada...
¿Qué puedo probar ahora...?
Gracias.
Te debería de funcionar de la 1ª forma y no veo el porque no lo hace.
Si quieres me mandas la BD en access 2003 y con algún registro para que no pese y la echo un vistazo.
[email protected]
Te envié la BD

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas