Hallo,
ich habe eine Frage und zwar hab mehrer Tabellen und Formulare.
In der einen gebe ich über ein Formular eine Kategorie und eine Bezeichnung und eine Art. Nr.
ein.
Ich will jetzt ein neues Formular erstellen wo man erst den Datensatz praktisch auswählt.
Also ich habe 3 Listenfeler.
1. Art. Nr.
2. Kategorie
3. Bezeichnung
So jetzt will ich dass wenn ich eine Kategorie auswähle mir automatisch nur noch in den Listenfeldern Art. Nr und Bezeichnung die angezeigt werden die auch diese Kategorie haben.
Oder ich weis die Art. Nr. dann werden die Felder Bezeichnung und Kategorie automatisch gefüllt.
Geht das ???
Wie macht man das ?
Ich hab eine Beispiel Datenbank angehäng könnte mir jemand so ein Formular erstelllen ??? (Wär euch echt sehr dankbar)
Gruß
Fabi
Wir sind auf Ihre Unterstützung angewiesen!
💚 BITTE helfen Sie uns HEUTE mit einer SPENDE 💚
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Listenfeler verknüpfen
Listenfeler verknüpfen
- Dateianhänge
-
- Neue Datenbank.zip
- (7.99 KiB) 225-mal heruntergeladen
Re: Listenfeler verknüpfen
Hallo Fabi,
Ich habe einmal das doch recht dürftige Beispiel von Dir erweitert.
Zuerst konstruiere ich eine Tabelle "Filter", die ich mit den Feldern Deiner Suchtabelle versehe (habe ich einfach kopiert). Als Primärschlüssel wähle ich hier ein Ja/Nein-Feld, weil nur ein Datensatz gespeichert werden soll.
Dann erstelle ich eine Abfrage, die alle Datensätze Deiner Ausgangstabelle enthält. Diese Abfrage enthält lauter Beziehungen zu der Tabelle "Filter", und zwar der folgenden Art:
Wenn das Feld "Beziehung" in der Tabelle "Filter" leer ist (NULL), dann wird alles angezeigt - vorausgesetzt, in dem Feld "Beziehung" der Ausgangstabelle steht auch etwas. Ansonsten muss hier mit Ersatzfeldern getrickst werden. Das geht ebenfalls über IFNULL, habe ich hier aber nicht eingebaut.
Diese Abfrage ist jetzt Grundlage des Formulars, in das Du eingibst. Das Formular enthält zusätzlich einen Button zum Aktualisieren. Daneben ist, sichtbar über den Formularnavigator, auf der gleichen Fläche ein zweites Formular angeordnet, das als Grundlage die Tabelle Filter hat und dort nur die Daten ändern kann. Du wählst einen Filter, lässt das andere Formular aktualisieren und dort erscheinen die dazu passenden Daten.
Für die Aktualisierung der Listenfelder musst Du noch ein Stück weiter gehen. Die werden ja nicht aktualisiert, da das Formular, das aktualisiert wird, neben dem Formular für den Filter liegt. Also ein Hauptformular gebaut, beide Formulare als Unterformular konstruiert. Die Unterformulare brauchen nicht mit dem Hauptformular verbunden zu werden. Das Hauptformular braucht allerdings als Grundlage eine Tabelle oder Abfrage. Da habe ich einfach die eingebaut, die auch als Grundlage für die Filterung dient. Den Button jetzt ins Hauptformular gesetzt und damit werden dann beide Formulare auf einmal aktualisiert.
Gruß
Robert
Da gibt es sowohl Lösungen der direkten Art als auch über Makros. Der Unterschied besteht darin, dass Du bei der einfachen Lösung immer noch einen Button betätigen musst.Fabiii hat geschrieben: So jetzt will ich dass wenn ich eine Kategorie auswähle mir automatisch nur noch in den Listenfeldern Art. Nr und Bezeichnung die angezeigt werden die auch diese Kategorie haben.
Oder ich weiß die Art. Nr. dann werden die Felder Bezeichnung und Kategorie automatisch gefüllt.
Ich habe einmal das doch recht dürftige Beispiel von Dir erweitert.
Zuerst konstruiere ich eine Tabelle "Filter", die ich mit den Feldern Deiner Suchtabelle versehe (habe ich einfach kopiert). Als Primärschlüssel wähle ich hier ein Ja/Nein-Feld, weil nur ein Datensatz gespeichert werden soll.
Dann erstelle ich eine Abfrage, die alle Datensätze Deiner Ausgangstabelle enthält. Diese Abfrage enthält lauter Beziehungen zu der Tabelle "Filter", und zwar der folgenden Art:
Code: Alles auswählen
WHERE "Beziehung" = IFNULL((SELECT "Beziehung" FROM "Filter" WHERE "ID" = TRUE), "Beziehung") ...
Diese Abfrage ist jetzt Grundlage des Formulars, in das Du eingibst. Das Formular enthält zusätzlich einen Button zum Aktualisieren. Daneben ist, sichtbar über den Formularnavigator, auf der gleichen Fläche ein zweites Formular angeordnet, das als Grundlage die Tabelle Filter hat und dort nur die Daten ändern kann. Du wählst einen Filter, lässt das andere Formular aktualisieren und dort erscheinen die dazu passenden Daten.
Für die Aktualisierung der Listenfelder musst Du noch ein Stück weiter gehen. Die werden ja nicht aktualisiert, da das Formular, das aktualisiert wird, neben dem Formular für den Filter liegt. Also ein Hauptformular gebaut, beide Formulare als Unterformular konstruiert. Die Unterformulare brauchen nicht mit dem Hauptformular verbunden zu werden. Das Hauptformular braucht allerdings als Grundlage eine Tabelle oder Abfrage. Da habe ich einfach die eingebaut, die auch als Grundlage für die Filterung dient. Den Button jetzt ins Hauptformular gesetzt und damit werden dann beide Formulare auf einmal aktualisiert.
Gruß
Robert
- Dateianhänge
-
- Datenbank_Filter.odb.zip
- (17.92 KiB) 262-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
Re: Listenfeler verknüpfen
Hallo,
vielen Dank für deine ausführliche Antwort !!!!!!!!!!!
Hast mir sehr geholfen
Gruß
Fabi
vielen Dank für deine ausführliche Antwort !!!!!!!!!!!
Hast mir sehr geholfen
Gruß
Fabi
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️