![Complete la clave externa usando combo/menú desplegable en el formulario](https://rvso.com/image/1475804/Complete%20la%20clave%20externa%20usando%20combo%2Fmen%C3%BA%20desplegable%20en%20el%20formulario.png)
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:
Y me gustaría que el usuario vea jobs.description
cuando crea un nuevo formulario person
a 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 relation
opción aparece atenuada:
En Access esto es fácil de lograr con el asistente de formulario:
¿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.
- Utilice el asistente de formulario para obtener el formulario lo más lejos que pueda con los campos de la
people
tabla únicamente. - Edite el formulario en modo de diseño (*pista: el ícono no es nada intuitivo, pero se ve así:
)
- 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.
- En
Choose the table from which the data should be used as basis for the list content
, seleccionejobs
. - Seleccione
description
comoDisplay field
. - Debajo de
Field from the Value Table
seleccionarjob_id
y debajo deField from the List Table
seleccionarid
.
¡Eso es todo! El cuadro desplegable ahora funcionará exactamente como se esperaba:
Si no le gustan los asistentes, puede editar manualmente el control List Box de la siguiente manera:
- Agregue su cuadro de lista y luego cierre el asistente. Haga clic en el icono "Control", que es un engranaje. (Esto tampoco tiene sentido).
- 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.
¡Eso es todo!