Seite 1 von 1

3 Tabellen, ein Formular

Verfasst: Fr, 25.04.2014 13:54
von pony_slaystation
Liebes Forum,

ich bin ein absoluter Neuling, was Base angeht und relativ neu, was SQL und relationale Datenbanken angeht (habe etwas mit XML und XPath gearbeitet). Ich habe folgendes Problem:
gegeben sind drei Tabellen, die jeweils Infos speichern, welche von mehreren Instanzen der anderen Tabellen genutzt werden sollen (in dieser Reihenfolge):
1. urkunde
2. buchstabe
3. segment
Also: eine Urkunde hat Metadaten. Diese gelten für mehrere Einträge in der Tabelle Buchstabe, und ein Buchstabe widerum besteht aus mehreren Segmenten mit entspr. Eigenschaften. Klassiche 1:n Beziehungen also, die auch als solche modelliert sind. Die Tabellen stehen also in entspr. Beziehungen zueinander (vgl. Screenshot).
[spoiler]Bild[/spoiler]
Ich habe für die Tabelle "Urkunde" ein eigenes Formular erstellt, da es sich aus arbeitstechnischen Gründen lohnt, die entspr. Dateneingabe über ein eigenes, kleines Formular zu regeln. Der Punkt ist nun: Ich würde die Eingabe der Daten für die anderen beiden Tabellen (also Buchstabe und Segment) gerne in einem Formular abwickeln. Dieses habe ich schon geschrieben; es soll die Daten der Urkunde anzeigen und es dann ermöglichen, zu einer Urkunde mehrere Buchstaben und zu diesen wiederum mehrere Segmente einzugeben. Über separate Formulare für jede Tabelle kein Problem, aber in einem Formular habe ich es einfach nicht hinbekommen. Gibt es da eine Lösung oder ist das prinzipiell nicht möglich? Btw: in dem bestehenden Formular sind die Tabellen als Unterformulare abgebildet, also Buchstabe als Subformular zu Urkunde und Segment als Subform zu Buchstabe. Damit ist es sozusagen möglich, eine 1:1 Beziehung von Urkunde bis runter zu Segment einzugeben, also EINE Urkunde mit Metadaten, EINEN Buchstaben mit Metadaten und EIN Segment mit Daten. Ich will aber eben ne 1:n Beziehung abbilden.

Besten Dank für eure Auskünfte!

Re: 3 Tabellen, ein Formular

Verfasst: Fr, 25.04.2014 15:59
von RobertG
Hallo pony_slaystation,

starte den Formularassistenten. Mache "urkunde" zum Hauptformular. Wähle anschließend als Unterformular "buchstabe" aus. Für das Unterformular solltest Du auf jeden Fall das Tabellenkontrollfeld nehmen, da damit alle Daten aus "buchstabe", die zu der aktuellen "urkunde" passen, angezeigt werden.

Für "segment" ist ein Unterformular des Unterformulars notwendig. Schau Dir dazu im Base-Handbuch das Kapitel zu Formularen an. Das Unterformular des Unterformulars lässt sich leider nicht mehr mit dem Assistenten erstellen. Da musst Du selbst Hand anlegen.

Gruß

Robert

Re: 3 Tabellen, ein Formular

Verfasst: Mo, 28.04.2014 09:27
von pony_slaystation
Danke für die Hilfe! Ich bekomme es nun hin, mit dem Assistenten ein Formular zu erstellen, in dem die Tabelle "Urkunde" in der Tabellenansicht eingebettet ist, und die Tabelle "Buchstabe" als Kontrollfelder. Wenn ich in der Tabelle einen Datensatz anwähle, dann kann ich über die Maske für "Buchstabe" mehrere Buchstabeninstanzen für dieselbe Urkunde (also ID bzw. JL-Nummer, welche einer ID gleichkommt) erstellen. Perfekt. Nun stehe ich vor einem anderen Problem:
Wie kann ich diesen Schritt in der Entwurfsansicht wiederholen? Ich weiß grundsätzlich, wie man ein Formular hier erstellt, bekomme aber zwei Dinge nicht gebacken: erstens kriege ich die Tabelle "Urkunde" nicht wie mit dem Assistenten in Tabellenansicht integriert. Lieber wäre mir sowieso ein Dropdownmenü, in dem ich die JL-Nummer auswähle und die zu dieser Nummer gehörenden Daten aus "Urkunde" werden dann automatisch in entsprechende Felder eingefügt. Solange ich im Dropdownmenü keine andere JL-Nummer auswähle, werden weiterhin zu genau dieser Nummer weitere "Buchstaben"-Instanzen angelegt. Das zweite, was noch nicht funktioniert, ist die Einbindung der Segmente zu einer "Buchstaben"-Instanz. Im Grunde müsste man das, was ich gerade bei "Urkunde" gemacht habe, nochmal bei den Segmenten wiederholen, sprich: solange ich nicht die Buchstaben-Instanz ändere, kann ich weitere Segmente zu genau diesem Buchstaben (aus genau derselben Urkunde) hinzufügen. Puh, ich hoffe, ich konnte mein Problem verständlich schildern, das ist gar nicht so leicht :-?
Ich habe die Datenbank in aktueller Form mal angehängt, falls das was hilft.

EDIT: OK, die Dateneingabe passt jetzt - fragt mich nicht, wieso plötzlich. Ich habe mich doch entschieden, die Daten aus der "Urkunde"-Tabelle als Tabellenansicht einzubinden, da es offenbar nicht möglich ist, die Daten automatisch in Textfelder zu schreiben. Was jetzt noch nicht passt ist, dass die Fremdschlüsselfelder leer bleiben. Ich gebe also Daten in die Tabellen ein, diese sind aber nutzlos, da sie nicht miteinander verknüpft sind. Eigentlich habe ich unter Extras => Beziehungen die entsprechenden Relationen definiert, aber die Fremdschlüssel werden nicht übernommen. Muss ich die manuell über ein Kontrollfeld im Subfomurlar eingeben? Der Witz dabei ist doch eigentlich gerade, dass ich über Frmendschlüssel mir die Eingabe einer Beziehung spare: solange ich im übergeordneten Formular das Referenzfeld des Fremdschlüssels im Subformular nicht ändere, werden automatisch alle Daten, die ich ins Subformular eingebe, mit diesem Datensatz aus dem übergeordneten Formular verknüpft - oder?

Re: 3 Tabellen, ein Formular

Verfasst: Mo, 28.04.2014 12:06
von RobertG
Hallo pony_slaystation,

aus Extras → Beziehungen liest der Tabellenassistent seine Beziehungen für Formular - Unterformular aus. Du hast aber diese Beziehungen wohl im Assistenten nicht besonders angeklickt.
Öffne den Formularnavigator, klicke auf ein Unterformular und verbinde hier die Felder selbst, wie in dem folgenden Bild gezeigt:
Bildschirmfoto10.png
Bildschirmfoto10.png (110.23 KiB) 2207 mal betrachtet
Das musst Du dann für das 2. Formular auch noch anlegen.

Gruß

Robert

Re: 3 Tabellen, ein Formular

Verfasst: Mo, 28.04.2014 13:28
von pony_slaystation
Funktioniert! Besten Dank!