En Access ¿Cómo puedo generar una tabla con el formulario de otra tabla existente?

PRESENTACIÓN

Se pretende extraer datos de dos tablas existentes (Tabla1 y Tabla2)por medio de un formulario (Formulario1) para generar una tercera y nueva tabla (Tabla3) con datos distintos creados a partir de los datos existentes.

Tabla 1

La Tabla1 contiene un campo de denominación y el resto de los campos contienen casillas de verificación para determinar cuáles cuadros de texto se activarán en el formulario de vinculación.

Tabla 2

La Tabla2 contiene un campo que hace referencia al nombre de una característica determinada y un campo para su respectivo valor numérico.

Formulario 1

En el formulario se puede observar: al inicio un cuadro combinado donde se selecciona alguna denominación de la Tabla1 y por lo tanto los cuadros de texto C1, C2, C3, C4 y C5 se habilitan para edición o no dependiendo del estado de las casillas de verificación cargadas en Tabla1.

Luego se observa que a mitad del formulario existe un cuadro combinado que toma alguna característica de Tabla2 y su valor numérico se ve reflejado en el cuadro de texto subsiguiente.

En la parte inferior del formulario aparecen tres cuadros de texto identificados como:

  • Nomenclatura: su valor se obtiene automáticamente mediante una serie de datos que se calculan de los datos anteriormente descriptos.
  • Dato_Nuevo1: su valor se obtiene calculando valores anteriores.
  • Dato_Nuevo2: su valor se obtiene de otro lado.

Por último al finalizar el formulario encontramos un botón denominado “NOMENCLAR”. Al hacer clic en “NOMENCLAR”, el formulario debería exportar los datos generados como un nuevo registro a una tercera tabla donde serán almacenados.

Tabla 3

La Tabla3 contiene tres campos: Nomenclatura, Dato_Nuevo1 y Dato_Nuevo2, cuyos registros son generados por el formulario de vinculación.

INCONVENIENTES

  • El principal inconveniente es que me resulta imposible lograr que datos de dos tablas distintas se vinculen en un formulario, sinceramente no se me ocurre la manera de hacerlo he intentado mil y una alternativa pero nada ha funcionado.
  • El segundo inconveniente primordial es que tampoco tengo idea sobre como pasar los datos obtenidos en los cuadros de texto del final del formulario, como un registro nuevo a la Tabla3.
Respuesta
3

La opción fácil sería este sistema:

1º/ El formulario lo basas en la tabla3, de tal modo que los 3 campos de la parte inferior ya se te guarden directamente en la tabla.

El resto de campos han de ser independientes (propiedad origen de control en blanco).

El primer cuadro combinado haces que coja los datos de la tabla1 (campo Denominación) y los otros 5 los sacas por código VBA-

El segundo cuadro combinado lo sacas de la tabla2 (campo denominación) y el otro lo obtienes también por código.

Para saber cómo trabajar con los cuadros combinados, mira este artículo.

Si el formulario lo quieres hacer independiente del todo, has de usar un recordset o una SQL del tipo INSERT INTO para añadir los datos a la tabla3.

@Sveinbjorn El Rojo

Primero que nada, quiero agradecerte enormemente por haber respondido tan rápido y tan concreto, me has aclarado el panorama en gran manera, mil gracias!

En base a lo que respondiste cito lo que me escribiste:

El primer cuadro combinado haces que coja los datos de la tabla1 (campo Denominación) y los otros 5 los sacas por código VBA-

Lamentablemente, si bien tengo un tiempo ya programando con VBA, me falta la experiencia como para explicarle a un Cuadro de Texto que busque por ejemplo en la Tabla1, el valor que aparece en el Cuadro Combinado y me devuelva la información que tiene por ejemplo el Campo3 de la misma tabla, que en este caso será Verdadero o Falso ya que este campo contiene casillas de verificación. Luego, en base a ese resultado, decirle al Cuadro de Texto que se habilite o no.

¿Crees que podrías tirarme una mano o una orientación para armar el código?

Mil Gracias! Y disculpa la molestia, necesito terminar esta base de datos para mi trabajo y estoy muy desconcertado con este inconveniente.

Yo haría algo así, en el evento después de actualizar del primer cuadro combinado:

Me.txtC1.Enabled=DLookUp("C1","Tabla1","Denominacion='" & Me.cboDenominacion & "'")

Me.txtC2.Enabled=DLookUp("C2","Tabla1","Denominacion='" & Me.cboDenominacion & "'")

...

Y así con los otros 3, siendo txtC1, txtC2... y cboDenominacion los nombres de los cuadros de texto y cuadro combinado respectivamente en el formulario (Propiedades ->pestaña Otros -> nombre), y siendo el valor que devuelve cboDenominacion de tipo texto.

Fíjate en el artículo que te mandé las distintas opciones que tienes para traer valores asociados al del cuadro combinado. En este caso, asocias la propiedad Enabled de los cuadros de texto al valor que devuelve la función DLookUp (el valor del campo en la tabla), al ser de tipo booleano, y así, en un paso, traes el valor y activas/desactivas el cuadro de texto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas