Perdida información cuadro combinado Access

Tengo un formulario con 3 cuadros combinados y están vinculados en cascada, 1 es el principal y los otros 2 dependientes.

Al llenar la información en el formulario va todo bien se registra la información en la tabla pero cuando se continúa llenado un nuevo registro en le formulario, la informacion de los 2 formularios dependientes en cascada desparece pero únicamente del formulario, la información en la tabla permanece.

Esto hace que la revisión de la información no sea buena.

En la tabla se registra el Id de autonumeracion, pero en el cuadro combinado selecciono información de texto.

2 respuestas

Respuesta
2

Por lo que comentas, parece que entre uso y uso de tus combinados no los "reseteas" para que queden con toda la información y te quedan con la del último registro que introduces, y por eso "aparentemente" no muestran nada.

Como hay muchas formas de hacer cuadros combinados en cascada y tu no dices cual usas, te explico cómo hacerlo según la que suelo usar yo:

En el evento "al activar registro" del formulario ponle este código:

Me.nombreCombinado2.Rowsource="SELECT Campo1,Campo2 FROM Tabla1 WHERE Campo=" & Me.nombreCombinado1
Me.nombreCombinado2.Requery
Me.nombreCombinado3.Rowsource="SELECT Campo1,Campo2 FROM Tabla2 WHERE Campo=" & Me.nombreCombinado2
Me. NombreCombinado3. Requery

Ye dejo un ejemplo con varios formularios: En FDatos1 pasa lo que a ti, hay registros en los que no se ve la provincia porque el cuadro combinado 2 se "queda" con las provincias de la última CA seleccionada, o al abrirlo no muestra ninguna (fíjate que no tiene origen de la fila). En FDatos 2, pasa algo parecido, en este caso el origen de la fila está vinculado al primer cuadro combinado, pero mientras los registros tengan diferentes CA, no se verán las provincias. En FDatos3, con el código que te comento en "al activar registro", el problema desaparece (si tu caso es como el del formulario FDatos2, llegaría con poner solo las lineas del Requery)

El ejemplo: http://www.filebig.net/files/6LAvwnFvXJ 

Disculpa, para ver correctamente el ejemplo, tienes que abrirlo pulsando la tecla SHIFT.

De todas formas, te lo vuelvo a subir aquí para verlo bien directamente. Además, aprovecho para añadirle dos formularios continuos, para que veas que no es necesario que modifiques tus combinados, puedes hacer que se vean todos los datos de los combinados en todos los registros: http://www.filebig.net/files/x4LB2NL5VP

En FDatosCont1, la provincia se ve si te colocas en el cuadro combinado. En FDatosCont2, se ve siempre (menos cuando vas a seleccionar un valor del combo, que "desaparecen" los de los otros registros).

Respuesta
2

Puede ser debido a dos cosas.

Primera, menos probable, que los combinados no tengan origen del control.

Segunda, más probable, que te pase lo de las imágenes.

Y en el siguiente registro, cuando voy a elegir un producto

Eso es porque en el segundo combinado le he dicho que la columna dependiente sea Idproducto, pero en el ancho de esa columna, para que "no se vea" tengo puesto que sea 0 cm. Por tanto, si lo guarda pero no se vé.

Y como el valor que guarda es el de la columna dependiente, si pones como visibles IdProducto y NombreProducto, cuando elijas alguno esto es lo que mostrará y guardará.

Mi consejo, es que haría que los combinados 2 y 3, sólo tuvieran una columna. Puedes seguir usándolos en cascada, pero usando el nombre del producto. Por ejemplo, supongamos que tengo una tabla Continentes con IdContinente y Continente(aunque realmente no sería necesario el Idcontinente, pero...) En el segundo combinado Paises(con origen del control) puedo dejar el origen de la fila en blanco y en sus propiedades-eventos-al recibir el enfoque poner

pais.rowsource="select pais from paises where continente ='" & me.continente & "'"

Lo mismo con el tercer combinado Ciudades, sólo una columna, y en el mismo evento poner

Ciudades.rowsource="select ciudad from ciudades where pais='" & me.pais & "'"

Etc.

En fin, que tienes que "reconfigurar" las columnas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas