Füllen Sie den Fremdschlüssel mit dem Kombinations- / Dropdown-Formular aus

3111
LondonRob

Ich möchte ein Fremdschlüsselfeld in einer Tabelle mit einem Kombinationsfeld / Dropdown auffüllen, wobei die Werte, die dem Benutzer angezeigt werden, nicht die IDs sind, sondern ein Beschreibungsfeld aus der Fremdtabelle.

Betrachten Sie das folgende Setup:

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 Beziehungsfenster angegeben:

foreign key relationship

Und ich möchte, dass der Benutzer das jobs.descriptionErstellen eines neuen personFormulars sieht .

Aber ich kann nicht sehen, wie das geht. Wenn ich ein Formular auf der Grundlage einer Abfrage erstelle, die die beiden Tabellen verbindet, kann ich keine neuen Daten erstellen. Wenn ich ein Formular auf der Grundlage von erstelle people, wird die Subform based on existing relationOption grau dargestellt: Subform based on existing relation

In Access ist dies mit dem Formularassistenten einfach zu erreichen:

Access form

Wie kann ich dies in LibreOffice / OOo Base erreichen?

2
Seit dem Posten dieses Q & A-Beitrags habe ich [diese Frage] gefunden (http://superuser.com/questions/700651/libreoffice-base-how-have-a-combobox-linked-to-a-related-table-linked- to-or -in) von [@Genom] (http://superuser.com/users/289364/genom), der dasselbe verlangt (jedoch umständlicher). LondonRob vor 8 Jahren 0

1 Antwort auf die Frage

3
LondonRob

Dies kann nicht mit dem Formularassistenten durchgeführt werden. Das verknüpfte Formularmaterial ist ein roter Hering.

Dies kann jedoch ziemlich einfach wie folgt durchgeführt werden.

  1. Verwenden Sie den Formularassistenten, um das Formular so weit wie möglich nur mit den Feldern aus der peopleTabelle abzurufen.
  2. Bearbeiten Sie das Formular im Entwurfsmodus (* Hinweis: Das Symbol ist völlig intuitiv, aber sieht wie folgt aus : design mode icon)
  3. Fügen Sie Ihrem Formular ein "Listenfeld" hinzu (Hinweis: kein Kombinationsfeld, diese sind in Base etwas anders). Daraufhin wird ein Assistent geöffnet, der Sie durch alles andere führt.
  4. Bei Choose the table from which the data should be used as basis for the list contentwählen jobs.
  5. Wählen Sie descriptionals Display field.
  6. Unter Field from the Value Tableauswählen job_idund unter Field from the List Tableauswählen id.

Das ist es! Die Dropdown-Box funktioniert jetzt genau wie erwartet: Job dropdown

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 den Assistenten. Klicken Sie auf das "Control" -Symbol, das ein Zahnrad ist. (Das macht auch keinen Sinn.)
  2. Geben Sie die Informationen wie folgt ein, wobei für "Inhalt der Liste" "SELECT" DESCRIPTION "," ID "FROM" JOBS "steht. Beachten Sie, dass das Feld, das Sie sehen möchten, zuerst angezeigt werden muss, und dass das Feld" Gebundenes Feld "Null ist -indexiert und sollte sich auf die ID-Spalte beziehen.

Control properties windows

Das ist es!