Para abordar los dos problemas que mencionas, necesitarás hacer lo siguiente:
1. Despliegue de lista en subformulario:
Para mostrar la relación entre las tablas y desplegar la lista en el subformulario según el campo seleccionado en el formulario principal, sigue estos pasos:
a. Abre el formulario principal en modo diseño.
b. Asegúrate de tener el subformulario correctamente vinculado a la tabla relacionada (Tabla A) mediante la propiedad "Origen del registro".
c. Agrega un cuadro de lista desplegable (
ComboBox) en el formulario principal para seleccionar el campo que desees.
d. Configura la propiedad "Origen de la fila" del cuadro de lista desplegable para obtener los valores desde la tabla relacionada (Tabla A).
e. Configura la propiedad "Vínculo maestro" del subformulario para que utilice el cuadro de lista desplegable como campo de referencia para filtrar los datos en el subformulario.
2. Bloqueo de eliminar y modificar datos, y botón de modificar:
Para bloquear la capacidad de eliminar y modificar datos directamente en los formularios, pero permitir la modificación mediante un botón específico, sigue estos pasos:
a. Abre el formulario en modo diseño.
b. Haz clic con el botón derecho del ratón en el formulario y selecciona "Propiedades".
c. Ve a la pestaña "Datos" de las propiedades del formulario.
d. Establece la propiedad "Permitir añadir" a "No" para evitar que se puedan agregar nuevos registros desde el formulario.
e. Establece la propiedad "Permitir eliminar" a "No" para evitar que se puedan eliminar registros desde el formulario.
f. Para el botón que deseas utilizar para modificar los registros, crea un botón de comando (
Command Button) en el formulario.
g. Haz doble clic en el botón para abrir el editor de código y agrega el código VBA necesario para la modificación de registros en el evento "Al hacer clic" del botón.
Por ejemplo, el código VBA para modificar registros podría ser similar a lo siguiente:
Recuerda reemplazar "NombreCampoClave" con el nombre del campo clave que identifica de manera única cada registro en la tabla. Asimismo, ajusta "NombreFormularioModificar" al nombre del formulario que deseas abrir para modificar los datos.
Con estas soluciones, deberías poder desplegar la lista en el subformulario según la selección en el formulario principal y permitir modificar registros a través de un botón específico, mientras se bloquea la eliminación y modificación directa en los formularios.