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.