Complete la clave externa usando combo/menú desplegable en el formulario

Complete la clave externa usando combo/menú desplegable en el formulario

Me gustaría completar un campo de clave externa en una tabla usando un cuadro combinado/menú desplegable donde los valores que ve el usuario no son los ID sino un campo de descripción de la tabla externa.

Considere la siguiente configuración:

create table people (
  id int identity primary key,
  name varchar(250),
  job_id int
);
create table jobs (
  id int identity primary key,
  description varchar(250)
);
insert into jobs(description) values 'foo';
insert into jobs(description) values 'bar';

He especificado la relación de clave externa en la ventana de relaciones:

relación de clave externa

Y me gustaría que el usuario vea jobs.descriptioncuando crea un nuevo formulario persona través de un formulario.

Pero no veo cómo hacer esto. Si creo un formulario basado en una consulta que une las dos tablas, entonces no puedo crear datos nuevos, y si creo un formulario basado en people, la Subform based on existing relationopción aparece atenuada: Subformulario basado en relación existente

En Access esto es fácil de lograr con el asistente de formulario:

Formulario de acceso

¿Cómo puedo lograr esto en LibreOffice/OOo Base?

Respuesta1

Esto no se puede hacer usando el asistente de formulario. El formulario vinculado es una pista falsa.

Pero puede hacerseequitativamentefácilmente, de la siguiente manera.

  1. Utilice el asistente de formulario para obtener el formulario lo más lejos que pueda con los campos de la peopletabla únicamente.
  2. Edite el formulario en modo de diseño (*pista: el ícono no es nada intuitivo, pero se ve así: icono de modo de diseño)
  3. Agregue un control de 'cuadro de lista' a su formulario (nota: no es un cuadro combinado, son algo diferente en Base). Esto abrirá un asistente que le guiará por todo lo demás.
  4. En Choose the table from which the data should be used as basis for the list content, seleccione jobs.
  5. Seleccione descriptioncomo Display field.
  6. Debajo de Field from the Value Tableseleccionar job_idy debajo de Field from the List Tableseleccionar id.

¡Eso es todo! El cuadro desplegable ahora funcionará exactamente como se esperaba: menú desplegable de trabajos

Si no le gustan los asistentes, puede editar manualmente el control List Box de la siguiente manera:

  1. Agregue su cuadro de lista y luego cierre el asistente. Haga clic en el icono "Control", que es un engranaje. (Esto tampoco tiene sentido).
  2. Ingrese la información de la siguiente manera, donde 'Contenido de la lista' dice "SELECCIONE "DESCRIPCIÓN", "ID" DE "TRABAJOS". Observe que el campo que desea que vea el usuariodebeviene primero, y que el 'campo enlazado' tiene un índice cero y debe hacer referencia a la columna ID.

Ventanas de propiedades de control

¡Eso es todo!

información relacionada