Combos solo funcionan la primera vez

Tengo un par de problemas que quería consultarte. Te explico un poco la situación y luego voy a los problemas.
Tengo un subformulario con varios combos, en total 3. Una vez seleccionado un valor en el primero, el segundo me muestra los valores relacionados con el anterior y así con el tercero.
Una vez grabado el primer registro, procedo a crear el segundo. Aquí tengo el primer problema, ya que me permite seleccionar bien el primer combo, pero al ir al segundo, en lugar de mostrarme los valores asociados a la selección realizada, me muestra el combo con los valores de la selección hecha en el registro anterior.
Me da la impresión como si los valores del segundo y tercer combo quedaran memorizados, mientras que los del primero no.
Datos:
Tabla Grupos: Id_Familia, Nom_Familia
Tabla Subgrupos: Id_Subfamilia, Nom_Subfamilia, Id_Familia_Subf
Tabla Tipos: Id_Tipo, Nom_Tipo, Id_Subfamilia_Tip, Id_Familia_Tip
Los combos tienen por nombre: Familia, Subfamilia y Tipo respectivamente
Las select que hago son:
Para Familia:
SELECT RM_GRUPS.Id_Familia, RM_GRUPS.Nom_familia
FROM RM_GRUPS
ORDER BY RM_GRUPS.[Nom_familia];
El origen de Control en este caso es RM_Grup
Para Subfamilia:
SELECT RM_SUBGRUPS.Id_Subfamilia, RM_SUBGRUPS.Id_Familia_Subf, RM_SUBGRUPS.Nom_Subfamilia
FROM RM_SUBGRUPS
WHERE (((RM_SUBGRUPS.Id_Familia_Subf)=[Formularios]![RMPLANSMUNIS]![RMRECURSOSPAM]![Familia]))
ORDER BY RM_SUBGRUPS.Nom_Subfamilia;
El origen de Control en este caso es RM_Subgrup
Para Tipo:
SELECT RM_TIPUS.Id_Tipus, RM_TIPUS.Id_Subfamilia_Tip, RM_TIPUS.Id_Familia_Tip, RM_TIPUS.Nom_Tipus
FROM RM_TIPUS
WHERE (((RM_TIPUS.Id_Subfamilia_Tip)=[Formularios]![RMPLANSMUNIS]![RMRECURSOSPAM]![Subfamilia]))
ORDER BY RM_TIPUS.Nom_Tipus;
El origen de Control en este caso es RM_Tipus
¿Dónde tengo el problema? ¿Me falta hacer algo?

1 respuesta

Respuesta
1
Creo que ya me preguntaste por esto y la solución es la misma, como haces mención a los valores de los COMBOS.
Te pongo el enlace para que puedas verlo.
http://www.todoexpertos.com/mitodoexpertos/expert/questions/view/2553979/introducir-el-valor-del-parametro
En este caso, lo que tienes que incluir es :
[Formularios]![RMPLANSMUNIS]![rmrecursospam]. Form![Familia]
[Formularios]![RMPLANSMUNIS]![rmrecursospam]. Form![Subfamilia]
Basta con que sustituyas esto en tus consultas de origen y a ver que pasa.
Gracias José. Tienes razón en que ya pregunté por como montar los combos relacionados, pero el problema que tengo es que solo me funciona la selección para la primera vez.
En el segundo registro del subformulario, la nueva selección del grupo(primer combo) es válida pero en el segundo, subgrupo, no me salen los valores asociados a esa selección, si no a la del registro anterior. Parece como si quedara memorizado lo anterior y no realizara correctamente la nueva selección.
Aquí es donde tengo el problema. A ver si puedes darme una solución. Estoy seguro que será una tontería que falta por hacer.
Gracias de nuevo
Ok. Pero substituye las expresionese dije en tu código, para ver si funcionan o no.
José, he probado lo que me has dicho y te muestro uno de los select de los combos, el de subgrupo:
SELECT RM_SUBGRUPS.Id_Subfamilia, RM_SUBGRUPS.Id_Familia_Subf, RM_SUBGRUPS.Nom_Subfamilia
FROM RM_SUBGRUPS
WHERE (((RM_SUBGRUPS.Id_Familia_Subf)=[Formularios]![RMPLANSMUNIS]![RMRECURSOSPAM].[Form]![Familia]))
ORDER BY RM_SUBGRUPS.Nom_Subfamilia;
El de los tipus es lo mismo pero con Subfamilia en eúltimo corchete. No da errores, pero la selección en segunda vuelta no funciona como he comentado anteriormente.
Gracias,
Joan
Antes de abrir los combos de los segundos registros, presiona por favor F5, a ver si cambia la cosa...
Si es así te comento una instrucción para actualizar vía VB.
José, después de entrar un primer registro en el que todo funciona bien, voy a introducir un segundo registro. Selecciono un nuevo grupo y después pulso F5 sin abrir los otros combos y lo que hace el sistema es ponerme en el primer registro.
¿Es normal?
Joan
El problema que te ocurre es que no actualiza el valor de las listas.
Para ello, en el evento después de actualizar de los combos, introduce lo siguiente:
Me. Recordset. Requery
Creo que con eso funcionará.
Dime como va.
Lo del F5 es normal, que te vaya al primer registro.
Pues no José, sigue sin funcionar. Continua haciendo lo mismo, es decir, presentando el valor de la selección anterior.
Si quieres puedo mandarte la base de datos y le das un vistazo tu mismo. Si me mandas tu dirección de correo, te lo remito.
Saludos,
Joan
Ok. No es mi costumbre pero adelante:
[email protected]
Avísame.
José, antes de marearte con el envío, un tema por si puede servir de guía y aclaración. La versión que estoy utilizando de la BD, trata los combos como independientes, no tienen Origen de Control asociado, pero lo que ocurría es que no me grababa los valores seleccionados de estos en la base de datos.
Para resolver esto, asocié en el valor Origen de Control el nombre del campo de la base de datos correspondiente donde debe quedar almacenado el valor y a partir de ese momento, empezó el problema que ha originado mi consulta.
Si ésta es la razón de que no funcione bien y hay que volver a eliminar el Origen de Control, ¿puedes decirme cómo lo hago para que los valores seleccionados en los combos queden grabados en la BD?
Gracias
Mándamela mejor, para revisar como tienes todo.
Te la he devuelto corregida. Los problemas eran:
a) Los combos no pueden ser independientes. Lo correcto es que el origen de datos sea el campo de la tabla donde se almacenan.
b) En el evento Después de actualizar del primer y segundo combo, hay que poner respectivamente:
Me. Recordset. Requery
Me. Subfamilia. Requery
y
Me. Recordset. Requery
Me. Tipus. Requery
Sí te aseguras que actualiza los valores sin llevarte al primer registro, y que actualiza la consulta del siguiente combo de la elección.
Pruébalo en la que te envié, o intentalo si quieres en la tuya.
José,
te agradezco enormemente el apoyo y paciencia. No tener conocimiento es como no poder ver, pero lo que me sobran son ganas de aprender y has contribuido totalmente a ello.
Espero dejarte tranquilo una buena temporada. Solo una pregunta consejo. A parte de progar y probar, ¿conoces algún libro didáctico de Access que explique cosas de estas, que realmente sea práctico y ayude a resolver problemas como éstos que te he planteado?
Muchas gracias de nuevo,
Joan

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas