wie verknüpfe ich ein Komb.-feld mit einem Sub-Tabellenfeld?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

egerlach
****
Beiträge: 107
Registriert: Fr, 13.10.2006 20:21

wie verknüpfe ich ein Komb.-feld mit einem Sub-Tabellenfeld?

Beitrag von egerlach »

Hallo,

ich habe mit dem Assistenten ein Tabellenfeld (Nr. 1) mit SubFormular (wiederum Tabellenfeld) gemacht und Abhängigkeiten eingetragen, das klappt auch. Ich will aber dass das Masterfeld (Nr. 1) ein Kombinationsfeld ist, es soll dort die PLZ eingegeben werden können, es dauert zu lange die in einer RIESENTABELLE aller PLZ zu scrollen, klar! Der Assistent bietet diese Auswahloption nicht. Also muß ich es nachträglich machen. Wie geht das?
Nachträglich ein Kombinationsfeld einfügen geht klar. Aber wie VERKNÜPFE ich das neue Kombinationsfeld (darin nur das FEld PLZ) mit dem SubFormular des Assistenen?

Bild

danke schon mal
Eckard[/img]
egerlach
****
Beiträge: 107
Registriert: Fr, 13.10.2006 20:21

Beitrag von egerlach »

Habe mal durch Schmökern im Archiv dieses Forums den "Formularbasierten Filter" gefunden:

viewtopic.php?t=5549&highlight=formularbasierter+filter

In diesem Rahmen tut sich auch ein Fensterchen "Filter Navigator" auf. Dort werden wohl die Filter angezeigt, die das Formular und das SubForm verbinden. Kann mit jmd sage wo und wie diese Filter programmiert bzw umprogrammiert werden können auf das Kombinationsfeld? - Es schein hier ja noch einiges tief in den Kinderschuhen zu stecken, wenn das Verbinden von zwei Formularen mit so viel Aufwand verbunden ist.

Gruss
Eckard
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Warum machst du nicht einfach im Subformular eine ComboBox mit den PLZ als Werteliste...?
egerlach hat geschrieben:Es schein hier ja noch einiges tief in den Kinderschuhen zu stecken, wenn das Verbinden von zwei Formularen mit so viel Aufwand verbunden ist.
Is doch garnich so aufwendig... :D

Grüßle
Thomas
egerlach
****
Beiträge: 107
Registriert: Fr, 13.10.2006 20:21

Beitrag von egerlach »

Mihilist hat geschrieben:Warum machst du nicht einfach im Subformular eine ComboBox mit den PLZ als Werteliste...?
wie mache ich *IM* Subformular eine ComoBox? Endlich kommen wir auf das, was hier im Nebel verschwindet: es gibt offenbar eine Möglichkeit *IM* Subformular eine ComboBox zu machen und *außerhalb* . Könntest Du mir bitte mitteilen wie ich wählen kann ob *IN* oder *außerhalb* ?

Dann interessiert mich was Du als Wertliste bezeichnest. Bei dem von mir erforderlichen Kombinationsfeld "ComboBox1" habe ich bei Datenfeld "plz" eingetragen (per pull-down) und bei "Art des Listenfelds" "sql" mit dem String: select distinct plz from pers order by plz. Der Pull down funktioniert auch, ich sehe die PLZ, aber in der Tabelle wird daraufhin nichts aktualisiert. Ich vermute, daß das geheimnisvolle *IM* oder *außerhalb" damit zusammenhängt, also ob da eine "geheimnisvolle" Verknüpfung gestrickt wird oder nicht,

Nachtrag: es ist wirklich soo!!!! Habe gerade eben ein Textfeld irgenwie anderst erzeugt, es steht unter Formular-Eigenschaften "verknüpfen von" und "verknüpfen nach". Das steht bei dem anderen Textfeld in dem anderen Formular nicht! Damit ist die Sache zu gut wie geklärt, hier weiß doch sicherlich jmd wie nur die beiden verschiedenartigen Textfelder (gleiches gilt wohl für kombinationsfelder) erzeugt werden können.

Gruss
Eckard
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

egerlach hat geschrieben:es steht unter Formular-Eigenschaften "verknüpfen von" und "verknüpfen nach". Das steht bei dem anderen Textfeld in dem anderen Formular nicht!
Siehe anderer Thread.

Das Formular-Eigenschaften-Fenster bekommst du über die dort angesprochene Formularnavigation (rechtsklick auf's Formular -> Eigenschaften). Dort kannst du zB ein Subformular so mit dem Oberformular verknüpfen, dass ein Feld automatisch als Filter fungiert.
egerlach
****
Beiträge: 107
Registriert: Fr, 13.10.2006 20:21

Beitrag von egerlach »

Mihilist hat geschrieben: Das Formular-Eigenschaften-Fenster bekommst du über die dort angesprochene Formularnavigation (rechtsklick auf's Formular -> Eigenschaften). Dort kannst du zB ein Subformular so mit dem Oberformular verknüpfen, dass ein Feld automatisch als Filter fungiert.
"Dort kannst Du zB ein Subformular so mit dem Oberformular verknüpfen" - JAAA , das will ich. Bitte etwas genauer! Ich finde keine Option! Nichts naheliegender als es genau dort stehen sollte. Bei MS Access springt es einem ins Auge, hier finde ich es nicht. Wo ist die Verknüpfungsoption?

Beispiel:
Ich habe z.B: ein leeres Formular, stecke eine ComoBox (PLZ-Auswahl) rein und dann eine Tabellenkontrollfeld. Im Tabellenkontrollfeld ist KEIN Feld "Verknüpfen von/nach" zu finden. Wie verknüpfe ich nun? Wie mache ich der Tabelle klar, daß die ComboBox ein Filter sein soll?

Beispiel 2: ich erstelle mit dem Assistenten ein Textfeld (ComboBox steht leider nicht zur Auswahl im Assistenten) und eine darauf Tabelle als SubForm. Hier erstellt der Assistent eine Verknüpfung. WO aber finde ichdie Verknüpfung? In "Verknüpfen von/nach" erkenne ich einen Teil, das ist aber nicht alles denn: lösche ich das Textfeld und füge eine ComboBox ein und versuche nun dieses ComboBox Feld zum Filter zu machen, dann schlägt das fehl - TROTZ "Verknüpfen von/nach"-Feld in den Eigenschaften des TabellenKontrollfeldes! Nun zum x-ten Mal meine Frage: wie verknüpfe ich die Tabelle mit der ComboBox? - Unter Access wird explizit der NAME des zu verknüpfenden Elementes beim untergeordneten Element eingetragen. WAS IST DAS ENTSPRECHENDE bei OO-BASE?

Gruss
Eckard
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

egerlach hat geschrieben:"Dort kannst Du zB ein Subformular so mit dem Oberformular verknüpfen" - JAAA , das will ich. Bitte etwas genauer! Ich finde keine Option! Nichts naheliegender als es genau dort stehen sollte. Bei MS Access springt es einem ins Auge, hier finde ich es nicht. Wo ist die Verknüpfungsoption?
Du kannst mit den Eigenschaften "Verknüpfen von" und "Verknüpfen nach" sagen, welches Feld des übergeordneten Formulars im Subformular als "Filter" dient (genauer: Die entsprechenden Einträge eines Fremdschlüssels/einer 1:n-Verbindung werden gezeigt).

Das hat aber noch nicht direkt was mit einem Steuerelement irgendwo zu tun ;)
egerlach hat geschrieben:Beispiel:
Ich habe z.B: ein leeres Formular, stecke eine ComoBox (PLZ-Auswahl) rein und dann eine Tabellenkontrollfeld. Im Tabellenkontrollfeld ist KEIN Feld "Verknüpfen von/nach" zu finden. Wie verknüpfe ich nun? Wie mache ich der Tabelle klar, daß die ComboBox ein Filter sein soll?
Kommt erstmal auf den DB-Aufbau an...

Aber dass im Eigenschaftenfenster der Tabelle kein "Verknüpfen von" oder "...nach" zu finden ist sollte dir eigentlich klar sein, wenn du den anderen Thread von dir gelesen hast.
egerlach hat geschrieben:Beispiel 2: ich erstelle mit dem Assistenten ein Textfeld (ComboBox steht leider nicht zur Auswahl im Assistenten) und eine darauf Tabelle als SubForm. Hier erstellt der Assistent eine Verknüpfung. WO aber finde ichdie Verknüpfung? In "Verknüpfen von/nach" erkenne ich einen Teil, das ist aber nicht alles denn: lösche ich das Textfeld und füge eine ComboBox ein und versuche nun dieses ComboBox Feld zum Filter zu machen, dann schlägt das fehl - TROTZ "Verknüpfen von/nach"-Feld in den Eigenschaften des TabellenKontrollfeldes!
Du kannst das Textfeld mit Rechtsklick -> "Ersetzen durch" einfach durch eine ComboBox ersetzen, dann musst du nix löschen und wieder einfügen.
egerlach hat geschrieben:Nun zum x-ten Mal meine Frage: wie verknüpfe ich die Tabelle mit der ComboBox?
Nimm eine ListBox :D

Nein, das ist geraten. Das Problem ist, dass du mit der Auswahl in der ComboBox die Zeile des übergeordneten Formulars nicht änderst, somit wird das Subformular nicht beeinflusst. Bei einer ListBox könnte es anders sein, aber da bin ich mir nicht sicher.

Alternativ kannst du das per Makro lösen, oder einfach die Filterfunktion von OOo nutzen.
egerlach
****
Beiträge: 107
Registriert: Fr, 13.10.2006 20:21

Beitrag von egerlach »

Mihilist hat geschrieben:
egerlach hat geschrieben:"Dort kannst Du zB ein Subformular so mit dem Oberformular verknüpfen" - JAAA , das will ich. Bitte etwas genauer! Ich finde keine Option! Nichts naheliegender als es genau dort stehen sollte. Bei MS Access springt es einem ins Auge, hier finde ich es nicht. Wo ist die Verknüpfungsoption?
Du kannst mit den Eigenschaften "Verknüpfen von" und "Verknüpfen nach" sagen, welches Feld des übergeordneten Formulars im Subformular als "Filter" dient (genauer: Die entsprechenden Einträge eines Fremdschlüssels/einer 1:n-Verbindung werden gezeigt).
richtig, aber nur wenn bereits eine Verknüpfung zum übergeordneten Formular besteht. UND WIE ERSTELLE ICH DIE PER HAND? (Wie gesagt: bei Access wird explizit der Name des übergeordneten Elementes eingetragen und gut is.)
Mihilist hat geschrieben:
egerlach hat geschrieben:Beispiel:
Ich habe z.B: ein leeres Formular, stecke eine ComoBox (PLZ-Auswahl) rein und dann eine Tabellenkontrollfeld. Im Tabellenkontrollfeld ist KEIN Feld "Verknüpfen von/nach" zu finden. Wie verknüpfe ich nun? Wie mache ich der Tabelle klar, daß die ComboBox ein Filter sein soll?
Kommt erstmal auf den DB-Aufbau an...

Aber dass im Eigenschaftenfenster der Tabelle kein "Verknüpfen von" oder "...nach" zu finden ist sollte dir eigentlich klar sein, wenn du den anderen Thread von dir gelesen hast.
Ich danke Dir für Deine zahlreichen Hilfen, in diesem Punkt haben die aber immer nur etwas beschrieben wie es sein sollte aber, das habe ich verstanden. Wie es aber technisch eingerichtet wird, (bei Accesswird explizit der Name des übergeordneten Elementes eingetragen und gut is.) wurde von Dir aber noch nicht erwähnt. Nochmal die Frage: wie mache ich unter OO-BAse ein Element zum übergeordneten und wie zum untergeordneten Formular?
Mihilist hat geschrieben:
egerlach hat geschrieben:Beispiel 2: ich erstelle mit dem Assistenten ein Textfeld (ComboBox steht leider nicht zur Auswahl im Assistenten) und eine darauf Tabelle als SubForm. Hier erstellt der Assistent eine Verknüpfung. WO aber finde ichdie Verknüpfung? In "Verknüpfen von/nach" erkenne ich einen Teil, das ist aber nicht alles denn: lösche ich das Textfeld und füge eine ComboBox ein und versuche nun dieses ComboBox Feld zum Filter zu machen, dann schlägt das fehl - TROTZ "Verknüpfen von/nach"-Feld in den Eigenschaften des TabellenKontrollfeldes!
Du kannst das Textfeld mit Rechtsklick -> "Ersetzen durch" einfach durch eine ComboBox ersetzen, dann musst du nix löschen und wieder einfügen.
Denkste!! Geht DA gerade nicht, schon längst probiert! Bei allen anderen Feldern gehts, nur nicht beim Textfeld WENN DIESES DAS ÜBERGEORDNETE FORMULAR DARSTELLT!!! Es ist in dem Zustand der Funktion als übergeordnetes Formular BLOCKIERT!
Mihilist hat geschrieben:
egerlach hat geschrieben:Nun zum x-ten Mal meine Frage: wie verknüpfe ich die Tabelle mit der ComboBox?
Nimm eine ListBox :D
hmmm ... bei 300 Postleitzahlen? Bißchen unübersichtlich, was?
Mihilist hat geschrieben: Nein, das ist geraten. Das Problem ist, dass du mit der Auswahl in der ComboBox die Zeile des übergeordneten Formulars nicht änderst, somit wird das Subformular nicht beeinflusst. Bei einer ListBox könnte es anders sein, aber da bin ich mir nicht sicher.
mit einer Listbox kann es der auch Assistent, aber wie gesagt, unübersichtlich.
Mihilist hat geschrieben: Alternativ kannst du das per Makro lösen, oder einfach die Filterfunktion von OOo nutzen.
Wenn das bei OO alles so kompliziert ist, was erwartet mich dann erst bei Makros? Und auch da muß ich wissen wie verknüpft wird ...

Gruss
Eckard
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

egerlach hat geschrieben:richtig, aber nur wenn bereits eine Verknüpfung zum übergeordneten Formular besteht. UND WIE ERSTELLE ICH DIE PER HAND?
Öhm... Garnicht.
Die ist automatisch da.

Wenn im Navigator ein Formular unter einem anderen steht (Baumstruktur halt) dient es als Subformular mit eigener Tabelle. Was willst du da noch verknüpfen?
egerlach hat geschrieben:Wie es aber technisch eingerichtet wird, (bei Accesswird explizit der Name des übergeordneten Elementes eingetragen und gut is.) wurde von Dir aber noch nicht erwähnt. Nochmal die Frage: wie mache ich unter OO-BAse ein Element zum übergeordneten und wie zum untergeordneten Formular?
Öhm... Garnicht.
Die ist automatisch da.

Wenn im Navigator ein Formular unter einem anderen steht (Baumstruktur halt) dient es als Subformular mit eigener Tabelle. Was willst du da noch verknüpfen?
egerlach hat geschrieben:Bei allen anderen Feldern gehts, nur nicht beim Textfeld WENN DIESES DAS ÜBERGEORDNETE FORMULAR DARSTELLT!!! Es ist in dem Zustand der Funktion als übergeordnetes Formular BLOCKIERT!
Das Textfeld ist niemals das übergeordnete Formular, da es kein Formular ist. Das Textfeld gehört höchstens zum übergeordneten Formular.
egerlach hat geschrieben:
Mihilist hat geschrieben:Nimm eine ListBox :D
hmmm ... bei 300 Postleitzahlen? Bißchen unübersichtlich, was?
Nicht unübersichtlicher als eine Combobox...
egerlach hat geschrieben:Und auch da muß ich wissen wie verknüpft wird ...
Darum würde ich dir nach wie vor den 1000-seitigen Developer's Guide empfehlen. Musst ja nicht alles lesen, aber mal so überfliegen... dann haste dieses Wissen schonmal ;)
egerlach
****
Beiträge: 107
Registriert: Fr, 13.10.2006 20:21

Beitrag von egerlach »

besten Dank für die Hilfe.

Habe gerade eben zufällig selbst entdeckt, was Du als "Navigator" bezeichnet hast: ein Fensterchen bei Klick auf ein Symbol mit einem Weihnachtsstern. DORT ist es tatsächlich möglich mit dem Textfeld des übergeordneten Formularen "Ersetzen durch" zu machen, aber es tut sich bei diesem Feld nix :-( Es ist also nicht ohne Grund im Kontextmenü gesperrt, im Navigator ist es offenbar (noch) nicht gesperrt (Inkonsistenz). In diesem Navi kann dann wohl auch ein Element eingefügt werden.
Mihilist hat geschrieben:Nimm eine ListBox :D
...
Nicht unübersichtlicher als eine Combobox...
Dein Vorschlag eines Listenfeldes ist daher nachteilhaft gegenüber einem ComboBox-Feld, als kein Wert eingetippt werden kann und das Feld sucht automatisch nach dem nächst näheren auswählbaren Feld, das dann per Kick übernommen werden kann.

naja, geht halt nicht,

Gruss
Eckard
Antworten