Hallo,
ich möchte ein SubFormular per Listenfeld steuern. Allerdings wird bei der Auswahl des Listenfelds der Datensatzzeiger nicht verschoben. Wo muss ich das anstoßen?
Mit freundlichen Grüßen
J. Kleis
Listenfeld als Auswahlkriterium
Moderator: Moderatoren
Sorry, ich war wohl mal wieder zu kurz angebunden. Mittlerweile bin ich auch um andere Programmierprobleme reicher. Aber leider geschieden und habe mittlerweile nicht mal das Geld für ein Buch... Aber hier nun die Frage:
Ich möchte eine Datenbank mit Schülerdaten. Zu diesen Schüler möchte ich in einem ersten Schritt Kontaktdaten (Eltern, Jugendamt, Tageseinrichtungen, etc.) speichern.
Meine erste Idee war: Ich nehme einen zweite Tabelle mit Kontaktpersonen und einer KontaktID. In einer dritten Tabelle werden die Kontaktverbindungen gespeichert, in Form KontaktID SchülerID. So hätte ich jeweils nur eine 1:n-Relation. Allerdings bekomme ich es nicht hin, dass die Kontaktdaten dann in einem Subformular angezeigt werden.
Dabei habe ich dann per Listenfeld die Namen der Schüler ausgewählt um anschließend im Subformular die Kontakte zu sehen. Leider hat die Auswahl im Listenfeld nicht den Datensatzzeiger bewegt, so dass die Anzeige im Subformular nicht aktualisiert worden ist.
Außerdem habe ich dann auch festgestellt, dass nicht alle Kontakte die verknüpft waren, angezeigt werden.
In einer zweiten Idee habe ich nur eine Kontaktdatenbank eingerichtet. In der Kontaktverbindungstabelle habe ich jeweils nur KontaktID : KontaktID gespeichert und die Art des Kontaktes dazugeschrieben. Hiermit habe ich dann aber n:m-Relation und das funktioniert irgendwie auch nicht.
Leider habe ich - wie gesagt - nicht das Geld für das Base-Buch (Makro-Buch habe ich noch aus bessren Zeiten...). Sollte mir jemand helfen können und möchten, danke ich sehr.
jens
Ich möchte eine Datenbank mit Schülerdaten. Zu diesen Schüler möchte ich in einem ersten Schritt Kontaktdaten (Eltern, Jugendamt, Tageseinrichtungen, etc.) speichern.
Meine erste Idee war: Ich nehme einen zweite Tabelle mit Kontaktpersonen und einer KontaktID. In einer dritten Tabelle werden die Kontaktverbindungen gespeichert, in Form KontaktID SchülerID. So hätte ich jeweils nur eine 1:n-Relation. Allerdings bekomme ich es nicht hin, dass die Kontaktdaten dann in einem Subformular angezeigt werden.
Dabei habe ich dann per Listenfeld die Namen der Schüler ausgewählt um anschließend im Subformular die Kontakte zu sehen. Leider hat die Auswahl im Listenfeld nicht den Datensatzzeiger bewegt, so dass die Anzeige im Subformular nicht aktualisiert worden ist.
Außerdem habe ich dann auch festgestellt, dass nicht alle Kontakte die verknüpft waren, angezeigt werden.
In einer zweiten Idee habe ich nur eine Kontaktdatenbank eingerichtet. In der Kontaktverbindungstabelle habe ich jeweils nur KontaktID : KontaktID gespeichert und die Art des Kontaktes dazugeschrieben. Hiermit habe ich dann aber n:m-Relation und das funktioniert irgendwie auch nicht.
Leider habe ich - wie gesagt - nicht das Geld für das Base-Buch (Makro-Buch habe ich noch aus bessren Zeiten...). Sollte mir jemand helfen können und möchten, danke ich sehr.
jens
Hallo Jens,
ich habe jetzt einmal rund zwei Stunden herumprobiert mit zwei Tabellen. Eine davon heißt Adressen mit den Feldern AdressID, Name (= Schülername), KontaktNr, die zweite heißt Kontakte mit den Feldern KontaktID, Kontakt (= Kontaktverbindung). Die Relation ist eine 1:n-Beziehung zwischen KontaktID und KontaktNr.
Auf der Basis der Tabelle Adressen habe ich ein Formular mit allen Feldern erstellt. Dann habe ich ein Listenfeld eingefügt. Im sich öffnenden Assistenten habe ich im Schritt 1 die Tabelle Kontakte ausgewählt, im Schritt 2 das Feld Kontakt ausgewählt, im Schritt 3 dann links das Feld KontaktNr und rechts das Feld KontaktID ausgewählt und Fertigstellen gedrückt.
Dies ist aufgrund einer Anleitung aus einem Basebuch geschehen und hat bisher (noch unter OOo 2.0.1) funktioniert. Jetzt werden unter OOo 2.0.3 allerdings nur die IDs angezeigt. Kann ich mir eigentlich nur mit einem Bug erklären.
Ich weiß jedoch nicht, ob diese Vermutung stimmt.
Sorry, jetzt bin ich mit meinem Latein am Ende. Vielleicht weiß ein anderer Rat.
Gruß
Norbert
ich habe jetzt einmal rund zwei Stunden herumprobiert mit zwei Tabellen. Eine davon heißt Adressen mit den Feldern AdressID, Name (= Schülername), KontaktNr, die zweite heißt Kontakte mit den Feldern KontaktID, Kontakt (= Kontaktverbindung). Die Relation ist eine 1:n-Beziehung zwischen KontaktID und KontaktNr.
Auf der Basis der Tabelle Adressen habe ich ein Formular mit allen Feldern erstellt. Dann habe ich ein Listenfeld eingefügt. Im sich öffnenden Assistenten habe ich im Schritt 1 die Tabelle Kontakte ausgewählt, im Schritt 2 das Feld Kontakt ausgewählt, im Schritt 3 dann links das Feld KontaktNr und rechts das Feld KontaktID ausgewählt und Fertigstellen gedrückt.
Dies ist aufgrund einer Anleitung aus einem Basebuch geschehen und hat bisher (noch unter OOo 2.0.1) funktioniert. Jetzt werden unter OOo 2.0.3 allerdings nur die IDs angezeigt. Kann ich mir eigentlich nur mit einem Bug erklären.

Sorry, jetzt bin ich mit meinem Latein am Ende. Vielleicht weiß ein anderer Rat.
Gruß
Norbert
OOo 2.0.4 unter Suse Linux 10.0
Hallo Jens
In der Formular-Navigation-Symbolleiste gibt es den Button "Formularbasierter Filter", da erst mal draufklicken; jetzt kannst du im Listenfeld den gewünschten Eintrag auswählen und dann in der Filter-Symbolleiste (öffnet sich wenn man auf "Formularbasierter Filter" klickt)auf den Button "Formularbasierten Filter anwenden" klicken; der entsprechende Datensatz im Subformular wird angezeigt.
Vorsicht mit der Filter-Symbolleiste!!! Dort keinesfalls auf "schliessen" klicken denn dann verschwindet sie auf nimmerwiedersehen und du bekommst sie nur wieder wenn du den User Ordner im Programmdatenordner löscht (ist wahrscheinlich ein Bug)
Du machst dir das Leben übrigens leichter wenn du statt eines Listenfeldes ein Tabellenkontrollfeld nimmst.
Mit dem Datensatzzeiger kannst du bequem durch deine Liste Navigieren, du kannst auch filtern und die angeschlossenen Subformulare springen (so sie richtig mit dem Hauptformular verbunden sind) automatisch zu den korrespondierenden Datensätzen.
Für dein Vorhaben brauchst du zunächst 2 Tabellen: Die Tabelle "Schueler" mit den Spalten SCHUELER_ID und NAME und die Tabelle
"Kontakte" mit den Spalten KONTAKTE_ID; SCHUELER_ID_KON und KONTAKT .
Im Formular musst du jetzt das Hauptformular mit der Schuelertabelle verbinden, und das Subformular mit der Kontakttabelle.
Das Unterformular verknüpfst du dann über die "SCHUELER_ID_KON" -Spalte der Kontakttabelle mit der SCHUELER_ID Spalte der Schuelertabelle mit dem Hauptformular.
Das war's auch schon.
Gruss Bernd
Das geht nur per Makro oder so:Allerdings wird bei der Auswahl des Listenfelds der Datensatzzeiger nicht verschoben. Wo muss ich das anstoßen?
In der Formular-Navigation-Symbolleiste gibt es den Button "Formularbasierter Filter", da erst mal draufklicken; jetzt kannst du im Listenfeld den gewünschten Eintrag auswählen und dann in der Filter-Symbolleiste (öffnet sich wenn man auf "Formularbasierter Filter" klickt)auf den Button "Formularbasierten Filter anwenden" klicken; der entsprechende Datensatz im Subformular wird angezeigt.
Vorsicht mit der Filter-Symbolleiste!!! Dort keinesfalls auf "schliessen" klicken denn dann verschwindet sie auf nimmerwiedersehen und du bekommst sie nur wieder wenn du den User Ordner im Programmdatenordner löscht (ist wahrscheinlich ein Bug)
Du machst dir das Leben übrigens leichter wenn du statt eines Listenfeldes ein Tabellenkontrollfeld nimmst.
Mit dem Datensatzzeiger kannst du bequem durch deine Liste Navigieren, du kannst auch filtern und die angeschlossenen Subformulare springen (so sie richtig mit dem Hauptformular verbunden sind) automatisch zu den korrespondierenden Datensätzen.
Für dein Vorhaben brauchst du zunächst 2 Tabellen: Die Tabelle "Schueler" mit den Spalten SCHUELER_ID und NAME und die Tabelle
"Kontakte" mit den Spalten KONTAKTE_ID; SCHUELER_ID_KON und KONTAKT .
Im Formular musst du jetzt das Hauptformular mit der Schuelertabelle verbinden, und das Subformular mit der Kontakttabelle.
Das Unterformular verknüpfst du dann über die "SCHUELER_ID_KON" -Spalte der Kontakttabelle mit der SCHUELER_ID Spalte der Schuelertabelle mit dem Hauptformular.
Das war's auch schon.
Gruss Bernd
Genau danach suche ich schon mehrere Monate trotz Büchern und Internet vergeblich. Gibt es nicht eine einfache Idee, wie man den Datensatzzeiger durch Anklicken in einem Listenfeld auf den angeklickten Eintrag setzen kann? Die API ist ja nicht wirklich einfach..., und es steht ja alles in englisch drin ... *seufz*Allerdings wird bei der Auswahl des Listenfelds der Datensatzzeiger nicht verschoben. Wo muss ich das anstoßen?
Das geht nur per Makro oder so: