🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Parameter Zeitraum und Person in Formular erfassen
Parameter Zeitraum und Person in Formular erfassen
Guten Tag
Ich versuche ein Formular zu erstellen, wo ich einen bestimmten Zeitraum abrufen kann. Gleichzeitig sollte dieser Zeitraum für eine einzelne Person ausgegeben werden können. Das Hauptformular basiert auf der Tabelle Filter, mit den Felder ID (Integer), Datumvon (Datumfeld), Datumbis (Datumfeld) Mitglied (Integer). Erstelle ich ein Unterformular, so lassen sich die einzelnen Personen anzeigen. Bleibt das Filterfeld Mitglied leer, zeigt das Unterformular nichts an.
Anhand des Dankenbankbeispiels zum Handbuch "Suchen und Filtern" stellte ich Filter und Anzeige auf die gleiche Ebene. Jetzt werden alle Datensätze angezeigt. Wähle ich jede eine Person im Filter an, erscheinen bei der Aktualisierung wieder alle. Was mache ich falsch?
Bei den Filtern Datumvon und Datumbis habe ich Textfelder, damit ich den bestimmten Zeitraum eingeben kann. Das Daum kann ich eingeben und wird im Filter abgespeichert, jedoch werden die Zeichen >= gelöscht. Wie verbinde ich die Textfelder mit der Anzeigetabelle.
Danke für die Unterstützung.
Ich versuche ein Formular zu erstellen, wo ich einen bestimmten Zeitraum abrufen kann. Gleichzeitig sollte dieser Zeitraum für eine einzelne Person ausgegeben werden können. Das Hauptformular basiert auf der Tabelle Filter, mit den Felder ID (Integer), Datumvon (Datumfeld), Datumbis (Datumfeld) Mitglied (Integer). Erstelle ich ein Unterformular, so lassen sich die einzelnen Personen anzeigen. Bleibt das Filterfeld Mitglied leer, zeigt das Unterformular nichts an.
Anhand des Dankenbankbeispiels zum Handbuch "Suchen und Filtern" stellte ich Filter und Anzeige auf die gleiche Ebene. Jetzt werden alle Datensätze angezeigt. Wähle ich jede eine Person im Filter an, erscheinen bei der Aktualisierung wieder alle. Was mache ich falsch?
Bei den Filtern Datumvon und Datumbis habe ich Textfelder, damit ich den bestimmten Zeitraum eingeben kann. Das Daum kann ich eingeben und wird im Filter abgespeichert, jedoch werden die Zeichen >= gelöscht. Wie verbinde ich die Textfelder mit der Anzeigetabelle.
Danke für die Unterstützung.
Re: Parameter Zeitraum und Person in Formular erfassen
Hallo Herbert,
in der Beispieldatenbank sind ja verschiedene Versionen enthalten, wie Daten gefiltert werden können. Mit welcher Version versuchst Du Dein Ziel zu erreichen?
Was willst Du in den Filtern sehen? Wenn ich das richtig verstehe möchtest Du nicht Filter, die sich gegenseitig beeinflussen, sondern ein Feld, das ein Startdatum und ein anderes, das ein Enddatum angibt, oder?
Gruß
Robert
in der Beispieldatenbank sind ja verschiedene Versionen enthalten, wie Daten gefiltert werden können. Mit welcher Version versuchst Du Dein Ziel zu erreichen?
Was willst Du in den Filtern sehen? Wenn ich das richtig verstehe möchtest Du nicht Filter, die sich gegenseitig beeinflussen, sondern ein Feld, das ein Startdatum und ein anderes, das ein Enddatum angibt, oder?
Gruß
Robert
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: Parameter Zeitraum und Person in Formular erfassen
Hallo Robert
Ich habe mich an der Beispieldatenbank "Beispiel Suchen und Filtern" Filterung ohne Makro orientiert. Diese zeigt beim Start alle Datensätze an. Ich möchte nun im Filter1 das Anfangsdatum und im Filter2 das Enddatum eingeben können, damit es mir beispielsweise alle Datensätze vom 01.08. - 15.08.13 anzeigt. Diese wiederum möchte ich nach Mitglied filtern können.
Herzlicher Gruss
Herbert
Ich habe mich an der Beispieldatenbank "Beispiel Suchen und Filtern" Filterung ohne Makro orientiert. Diese zeigt beim Start alle Datensätze an. Ich möchte nun im Filter1 das Anfangsdatum und im Filter2 das Enddatum eingeben können, damit es mir beispielsweise alle Datensätze vom 01.08. - 15.08.13 anzeigt. Diese wiederum möchte ich nach Mitglied filtern können.
Herzlicher Gruss
Herbert
Re: Parameter Zeitraum und Person in Formular erfassen
Hallo Herbert,
Du brauchst in der Tabelle "Filter" 2 Datumsfelder und ein Feld, das den Namen aufnehmen kann.
Danach musst Du die Abfrage konstruieren.
SELECT * FROM "Tabelle" WHERE "Datumvon" >= IFNULL((SELECT "Datumvon" FROM "Filter"),"Datumvon") AND "Datumbis" <= IFNULL((SELECT "Datumbis" FROM "Filter"),"Datumbis") AND "Mitglied" = IFNULL((SELECT "Mitglied" FROM "Filter"),"Mitglied")
Wenn das Formular leer bleibt, wenn im Feld "Mitglied" nichts steht, dann fehlt der Verweis IFNULL.
Gruß
Robert
Du brauchst in der Tabelle "Filter" 2 Datumsfelder und ein Feld, das den Namen aufnehmen kann.
Danach musst Du die Abfrage konstruieren.
SELECT * FROM "Tabelle" WHERE "Datumvon" >= IFNULL((SELECT "Datumvon" FROM "Filter"),"Datumvon") AND "Datumbis" <= IFNULL((SELECT "Datumbis" FROM "Filter"),"Datumbis") AND "Mitglied" = IFNULL((SELECT "Mitglied" FROM "Filter"),"Mitglied")
Wenn das Formular leer bleibt, wenn im Feld "Mitglied" nichts steht, dann fehlt der Verweis IFNULL.
Gruß
Robert
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: Parameter Zeitraum und Person in Formular erfassen
Hallo Robert
Besten Dank für deine Unterstützung. Die Abfrage funktioniert.
Ich habe noch eine Frage dazu: Im Datenbankbeispiel gibt es eine Spalte "IfNull(Sys.), 0". Welchen Zweck erfüllt diese, denn die Abfrage funktioniert auch ohne diese Spalte.
Gruss Herbert
Besten Dank für deine Unterstützung. Die Abfrage funktioniert.
Ich habe noch eine Frage dazu: Im Datenbankbeispiel gibt es eine Spalte "IfNull(Sys.), 0". Welchen Zweck erfüllt diese, denn die Abfrage funktioniert auch ohne diese Spalte.
Gruss Herbert
Re: Parameter Zeitraum und Person in Formular erfassen
Hallo Herbert,
zähle einfach einmal die Datensätze der Abfrage, wenn Du diese Formulierung
drin hast oder nicht. Es gibt Datensätze, bei denen ist nichts eingetragen in der Spalte "Sys.". Die werden damit zu '0' geändert. Sie werden sonst nicht angezeigt. Die Differenz in dem Beispiel ist 8187-8103=84 Datensätze. Dass die dann nicht angezeigt werden liegt daran, dass ich in der Abfrage eine Bedingung stehen habe:
Wenn in der Tabelle "Filter" im Feld "Filter_1" kein Eintrag ist, dann soll "Sys." = "Sys." sein. Das zeigt alle Einträge an, in denen etwas steht - denn für die gilt das. Für Einträge, bei denen das Feld leer ist (Datenbanksprache NULL) funktioniert die Gleichsetzung nicht. Deswegen wurde diesen leeren Feldern ein Wert in der Abfrage zugewiesen.
Das funktioniert genauso mit dem anderen Feld, das in dem Beispiel abgefragt wird.
Allein Spalten, in denen garantiert an jeder Stelle einen Wert haben, kannst Du von so einer Konstruktion ausnehmen. Noch besser wählst Du allerdings bei einem Textfeld wie "Sys."
Dann steht in dem Feld zwar nichts Sichtbares drin, es ist aber auch nicht NULL.
Gruß
Robert
zähle einfach einmal die Datensätze der Abfrage, wenn Du diese Formulierung
Code: Alles auswählen
IFNULL( "Sys.", 0 ) AS "Sys.",
Code: Alles auswählen
WHERE "Sys." = IFNULL( ( SELECT "Filter_1" FROM "Filter" ), "Sys." )
Das funktioniert genauso mit dem anderen Feld, das in dem Beispiel abgefragt wird.
Allein Spalten, in denen garantiert an jeder Stelle einen Wert haben, kannst Du von so einer Konstruktion ausnehmen. Noch besser wählst Du allerdings bei einem Textfeld wie "Sys."
Code: Alles auswählen
IFNULL( "Sys.", '' ) AS "Sys.",
Gruß
Robert
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: Parameter Zeitraum und Person in Formular erfassen
Danke für die Information. Nun habe ich begriffen.
Gruss Herbert
Gruss Herbert
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.