Seite 1 von 1

Zwei "Hauptformulare" - ein Unterformular

Verfasst: Di 6. Dez 2016, 13:44
von molline
Hallo zusammen,

wie ihr im Titel seht, möchte ich gerne ein Unterformular an zwei Hautpformulare koppeln.

Zur genaueren Erläuterung:
Ich erstelle gerade eine Schulungsdatenbank mit drei Tabellen: Mitarbeiter, Schulungen und Teilnahme.
Die ersten beiden sind selbsterklärend, die dritte (Teilnahme) besteht aus ID, Mitarbeiter_ID, Schulungs_ID und einem "JA/NEIN"-Feld. Die Beziehungen sind auch bereits gesetzt.

Jetzt würde ich gerne ein Formular basteln, in dem man Mitarbeiter und Schulung auswählen kann und die Kombination dann in die Teilnahme-Tabelle geschrieben wird. Mit dem Formular-Assisstenten habe ich es bereits hinbekommen, dass der Mitarbeiter automatisch in die Teilnahme-Tabelle geschrieben wird. Die Schulungen-Tabelle bekomme ich aber nicht verknüpft.

Meine Frage ist jetzt: geht das überhaupt? Und wenn ja, wie?

Google hat mir leider nur wenig weitergeholfen, auch das Base-Tutorial von LibreOffice machte mich nicht schlauer. :?

Re: Zwei "Hauptformulare" - ein Unterformular

Verfasst: Di 6. Dez 2016, 16:51
von Freischreiber
Hallo molline,

wenn ich es richtig verstehe, ist deine Tabelle "Teilnahme" eine Zwischentabelle und was du aufgebaut hast, eine m:n-Beziehung.

So ein ähnliches Problem hatte ich auch mal und es wurde hier: http://www.libreoffice-forum.de/viewtop ... 10&t=13924
gelöst.

Gruß
Freischreiber

Re: Zwei "Hauptformulare" - ein Unterformular

Verfasst: Di 6. Dez 2016, 20:16
von RobertG
Hallo molline,

zwei Verbindungen, die beide auf ein Unterformular verweisen, sind nicht möglich. Du brauchst hingegen ein Formular, ein Unterformular und in dem Unterformular dann noch ein Listenfeld. Mit dem stellst Du dann die n:m-Verbindung sicher. Im Hauptformular sollte die Tabelle stehen, bei der noch viele Werte ergänzt werden sollen. Dann hast Du mit dem Listenfeld im Unterformular weniger Probleme.

Einen Einstieg findest Du im Base-Handbuch in der Einführung (2. Kapitel - Testbeispiel im Detail). Wie Du die Inhalte für das Listenfeld gegebenenfalls bei geöffnetem Formular beschicken kannst, ist dann im Kapitel "Formulare - Eine Ansicht, viele Formulare" beschrieben. Du musst ein Formular neben dem ersten Formular im Formularnavigator erstellen. In diesem Formular stellst Du die Verbindung zur zweiten Tabelle her und füllst dort dann Werte für das Listenfeld nach. Das Listenfeld selbst musst Du aber danach noch aktualisieren, damit der Wert auch angezeigt werden kann.

Gruß

Robert

Re: Zwei "Hauptformulare" - ein Unterformular

Verfasst: Di 6. Dez 2016, 21:34
von gogo
Hi,

das Ja/Nein Feld brauchst Du nicht, Sinn würde es nur machen wenn in der Tabelle "Teilnahme" zusätzliche Informationen (z.B. "absolviert", "Prüfung_am", "bezahlt" ...) erfasst würden.

Und: Du brauchst kein Unterformular. Wie Robert schon sagte: 2 Listenfelder für "Mitarbeiter_ID" und "Schulungs_ID" sind ausreichend, wobei:
Wenn Du eine Hauptformular-Unterformular-Konstruktion verwendest und die übergeordnete Tabelle die Schulungen sind, kannst Du zu den Schulungen die Mitarbeiter erfassen, und vice versa: Wenn die übergeordnete Tabelle die Mitarbeiter sind, kannst Du zu den Mitarbeitern die Schulungen erfassen...

Wenn Du alle 3 Tabellen in einem Formular haben willst, musst Du 3 "übergeordnete Tabellen" machen, die untereinander nicht verbunden sind. Eine mögliche Konstruktion wären auch 2 übergeordnete Tabellen (Schulungen sowie Mitarbeiter) und jeweils eine untergeordnete Tabelle in der die "Schulungen_des_Mitarbeiters" bzw. die an der jeweils markierten Schulung "teilnehmende_Mitarbeiter" dargestellt sind:
Formstruktur.png
Formstruktur.png (9.19 KiB) 3042 mal betrachtet

Re: Zwei "Hauptformulare" - ein Unterformular

Verfasst: Mi 7. Dez 2016, 09:27
von molline
Guten Morgen,

vielen Dank für die Antworten! Ich werde mich mal an den Listenfeldern versuchen.

Das JA/NEIN-Feld hab ich aus "Teilnahme" entfernt, das ist wirklich irrelevant.

Gruß
molline

Re: Zwei "Hauptformulare" - ein Unterformular

Verfasst: Mi 7. Dez 2016, 10:53
von molline
Hello again :)

Die Listenfelder waren goldrichtig! Danke für den Tipp, jetzt tut das Formular, was ich will :D

Damit kann der Thread geschlossen werden.

Gruß
molline