Cuadro combinado que dependa de otro en un subformulario

Intentaré simplificar:

Formulario P R I N C I P A L contine un suformulario AUTORES. Este subf. Contiene el cuadro comb 'cod_autor' (donde introduzco el nombre de un autor) y el cuadro comb. 'cod_floruit' (donde introduzco las fechas entre las que transcurrió la vida de dicho autor).

¿Cómo consigo que cuando introduzca el nombre de un autor en el cuadro comb 'cod_autor' me aparezca automáticamente la fecha en el cuadro comb 'cod_floruit'?

Las tablas, campos y relaciones de los que depende el subf. Se muestran en este pantallazo (he desenfocado tablas que no vienen al caso).

Gracias.

1 Respuesta

Respuesta
1

Si estoy en lo cierto, lo que quieres que salga es el campo floruit en lugar del cod_floruit. Si es así fíjate en esta imagen:

Cuando el control busca como cuadro combinado en otra tabla, puedes decirle que enseñe 2 columnas, aunque la columna dependiente sea la primera (cod_floruit). Pero si le dices que la primera columna tiene 0 cm y la segunda sí tiene valor, aunque internamente guarde el cod_floruit, mostrará en pantalla el campo flrouit.

Espero que te sirva, y si no lo he entendido bien, me lo dices.

No estoy seguro de que te haya llegado mi respuesta a la tuya de ayer.

El problema no es ese. El problema es que no sale N A D A y quiero que salga automáticamente la fecha cuando introduzca el nombre de un autor y le dé a intro. Y no tenga que introducirla una y otra vez manualmente para el mismo autor.

Por si te aclara algo, te copio diseño y vista normal del subform.

Ahora te entiendo mejor.

El tema es que si el subformulario consulta la tabla de autores, no deberías poner cuadros combinados, sino cuadros de texto, y además si los coges de la lista de campos que te aparece en la parte derecha, la actualización debería ser automática.

De todas formas, hay manera de forzar que salga el lugar y la fecha para un código de autor. Si no tienes problema, me pasas la base de datos, y la reviso.

Ixos(at)elaltillo. Es

Ningún problema. Te la mando por correo. En efecto, me gustaría hacerlo también con el lugar y con otros campos. Solo te pedí el campo fecha para cogerlo como ejemplo y aplicarlo yo a los demás.

A ver si lo consigues.

Gracias de nuevo.

Una vez revisada la base de datos, el error consiste en lo siguiente:

Los datos del subformulario los coges de una tabla AUTORES. Sin embargo, los datos de cada campo (cod_autor, lug_nacimiento y cod_floruit) lo coges cada uno de una tabla.

He visto que haces un intento por código VBA de hacer que muestre el dato adecuado, pero no eso no funciona así.

La tabla en la que basas el subformulario, la tabla AUTORES, no está bien diseñada. Ahora mismo, los campos autor, floruit, nacimiento, etc son simplemente campos de números, que no están relacionadas con sus tablas correspondientes. Es decir, teóricamente son los mismos números, pero no están enlazados de ninguna manera. Deberías hacer que cada uno de esos campos de la tabla se enlace con la clave de la tabla de donde debe coger los datos.

Te pongo dos fotos, ejemplo del lug_nacimiento:

Mal

Bien:

Parece lo mismo, pero el resultado es este:

Ya ves que ahora sale un cuadro combinado, donde selecciona el lugar desde la otra tabla.

Y ahora, al generar un formulario, si pones ese cuadro combinado puedes añadir un cuadro de texto independiente, que tome como referencia el cuadro combinado, y que busque la columna X (en este caso es la segunda, porque empiezan por 0,1,2...). Así, cuando actualizas el cuadro combinado, te actualiza el dato para que lo veas.

De todas formas, tienes que darle un repaso a tu base de datos. Si ves las relaciones entre las tablas, hay errores, porque se puede llegar de una tabla a otra por varios sitios diferentes. Por ejemplo, para ir de AUTORES a X_EDITA, puedo ir por:
1) Directamente AUTORES > X_EDITA
2) AUTORES > D_TOPONIMOS_CIUDAD > EDITORIALES > X_EDITA
3) AUTORES > D_NMINA > EDS_LITERARIOS > X_EDITA
y varios más...

Esta estructura es una locura, seguro que no es necesaria. Para eso, tienes que mirarte información sobre normalización de bases de datos.

¡Gracias! Me imaginaba el despropósito.

Excelente respuesta.

Creía que iba a funcionar, pero no funciona. Sigo teniendo que meter los datos, ahora, además, por duplicado: en el cuadro combinado y en el cuadro de texto independiente. Es decir, que los tengo que actualizar manualmente.

Creo que ya te he dado bastante la lata.

Un saludo.

Si quieres, vuelve a enviarme la bd.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas