REquery

Hola. Estoy tratando de crear 3 combos en cascada, pero al refrescar, solo se refresca el el segundo:
ID_ASUNTO: Origen de fila de lista de valores "A";"B";"C", que establece el valor para el campo ID_ASUNTO de la tabla principal, tblPedidos.
ID_TIPO: Origen de fila de la tabla tblTipos:
SELECT tblTipos.TIPO, tblTipos.ID_TIPO FROM tblTipos WHERE (((tblTipos.ID_ASUNTO)=Formularios!frmAltas!ID_ASUNTO));
Y en función del valor ID_ASUNTO, el origen del combo ID_TIPO, cambia.
Campo3: Origen de fila de la tabla tblSubtipos:
SELECT tblSubtipos.SUBTIPO, tblSubtipos.ID_SUBTIPO, tblSubtipos.ID_TIPO, tblSubtipos.ID_ASUNTO FROM tblSubtipos WHERE (((tblSubtipos.ID_TIPO)=Formularios!frmAltas!ID_TIPO));
Lo mismo, en función del valor ID_TIPO, el origen del combo ID_SUBTIPO, cambia.
Las 2 tablas, tblTipos y tblSubtipos están relacionadas con el campo ID_TIPO y tienen los siguientes campos: Para tblTipos: TIPO, ID_TIPO, ID_ASUNTO. Para tblSubtipos: SUBTIPO, ID_SUBTIPO, ID_TIPO, ID_ASUNTO.
En los eventos Después de Actualizar:
de ID_ASUNTO:
Me.ID_TIPO.Requery
Me.ID_SUBTIPO.Requery
Y  de ID_TIPO:
Me.ID_SUBTIPO.Requery
Funciona cuando hago la primera selección, pero cuando cambio la selección de ID_ASUNTO, solo se refresca ID_TIPO, e ID_ASUNTO sigue mostrando el origen anterior.
¿Podéis decirme cuál es el error?. No sé si me faltaría alguna relación más.
Muchas gracias,

1 Respuesta

Respuesta
1
Mejor cambia el evento a Onchange (al Cambiar)
En el evento onChange de Id_Tipo
Pon esta linea seguida de un requery:
Me.Id_Subtipo.Rowsource = "SELECT tblSubtipos.SUBTIPO, tblSubtipos.ID_SUBTIPO, tblSubtipos.ID_TIPO, tblSubtipos.ID_ASUNTO FROM tblSubtipos WHERE (((tblSubtipos.ID_TIPO)=Formularios!frmAltas!ID_TIPO));"
Me.Id_Subtipo.Requery
Esta linea lo que hace es asignar el origen de datos al combo por lo que borra los datos guardados en la lista y rellena con los nuevos datos.
Si tienes cualquier duda, ya sabes por donde ando.
Muchas gracias por contestar. No me sale tampoco así, y no lo entiendo la verdad, pero al final lo he conseguido añadiendo en el origen de la fila del combo problemático ID_SUBTIPO, la condición de que coincida también con la selección del primer combo:
SELECT tblSubtipos.SUBTIPO, tblSubtipos.ID_SUBTIPO, tblSubtipos.ID_TIPO, tblSubtipos.ID_ASUNTO FROM tblSubtipos WHERE (((tblSubtipos.ID_TIPO)=[Formularios]![frmAltas]![ID_TIPO]) AND ((tblSubtipos.ID_ASUNTO)=[Formularios]![frmAltas]![ID_ASUNTO])) ;
Un saludo cordial,
Me alegro, aunque no tiene mucha lógica, jejejej.
Bueno si necesitaras algo más ya sabes por donde ando.
Muchas gracias por tu tiempo y colaboración. Aunque me inquieta un poco que no sea una buena solución la que he encontrado y algún día me de un susto y algún error.
Un saludo muy cordial :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas