Fremdschlüssel mithilfe der Kombinations-/Dropdownliste im Formular auffüllen

Fremdschlüssel mithilfe der Kombinations-/Dropdownliste im Formular auffüllen

Ich möchte ein Fremdschlüsselfeld in einer Tabelle mithilfe einer Kombinationsbox/Dropdown-Liste füllen, wobei die Werte, die der Benutzer sieht, nicht die IDs, sondern ein Beschreibungsfeld aus der Fremdtabelle sind.

Stellen Sie sich folgende Konfiguration vor:

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';

Ich habe die Fremdschlüsselbeziehung im Beziehungen-Fenster angegeben:

Fremdschlüsselbeziehung

Und ich möchte, dass der Benutzer es sieht, jobs.descriptionwenn er ein Neues personüber ein Formular erstellt.

Aber ich weiß nicht, wie das geht. Wenn ich ein Formular auf der Grundlage einer Abfrage erstelle, die die beiden Tabellen verbindet, kann ich keine neuen Daten erstellen, und wenn ich ein Formular auf der Grundlage von erstelle people, ist die Subform based on existing relationOption ausgegraut: Unterformular basierend auf vorhandener Beziehung

In Access lässt sich dies ganz einfach mit dem Formular-Assistenten erreichen:

Zugangsformular

Wie kann ich dies in LibreOffice/OOo Base erreichen?

Antwort1

Dies ist mit dem Formularassistenten nicht möglich. Das verlinkte Formularmaterial ist eine Ablenkung.

Aber es ist machbarziemlichganz einfach, und zwar wie folgt.

  1. Verwenden Sie den Formular-Assistenten, um das Formular möglichst weit zu bringen, und verwenden Sie dabei peoplenur die Felder aus der Tabelle.
  2. Bearbeiten Sie das Formular im Entwurfsmodus (*Hinweis: Das Symbol ist völlig unintuitiv, sieht aber so aus: Symbol für den Entwurfsmodus)
  3. Fügen Sie Ihrem Formular ein Listenfeld-Steuerelement hinzu (Hinweis: kein Kombinationsfeld, diese sind in Base etwas anderes). Dadurch wird ein Assistent geöffnet, der Sie durch alles Weitere führt.
  4. Choose the table from which the data should be used as basis for the list contentWählen Sie bei aus jobs.
  5. Wählen Sie descriptionals aus Display field.
  6. Unter Field from the Value Table„Auswählen“ job_idund unter Field from the List Table„Auswählen“ id.

Das ist es! Das Dropdown-Feld funktioniert jetzt genau wie erwartet: Dropdown-Liste „Job“

Wenn Sie keine Assistenten mögen, können Sie das Listenfeld-Steuerelement wie folgt manuell bearbeiten:

  1. Fügen Sie Ihr Listenfeld hinzu und schließen Sie dann den Assistenten. Klicken Sie auf das Symbol „Steuerung“, das ein Zahnrad ist. (Das ergibt auch keinen Sinn.)
  2. Geben Sie die Informationen wie folgt ein, wobei unter „Listeninhalt“ „SELECT „DESCRIPTION“, „ID“ FROM „JOBS“ steht. Beachten Sie, dass das Feld, das der Benutzer sehen soll,mussan erster Stelle stehen und dass das „Gebundene Feld“ einen Nullindex hat und auf die ID-Spalte verweisen sollte.

Fenster mit Steuerelementeigenschaften

Das ist es!

verwandte Informationen