Filter mit Markierfeld steuern

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

ziegelmak
Beiträge: 3
Registriert: Do, 07.04.2016 10:42

Filter mit Markierfeld steuern

Beitrag von ziegelmak »

Hallo Forum,

meine Base-Kenntnisse stecken noch etwas in den Kinderschuhen, somit habe ich mit einem (vielleicht) ganz einfachen Problem zu kämpfen:

Ich habe eine komplette Jugend-Vereinsmitgliederliste (mit Namen, Auszeichnungen, Eintrittsdatum, Austrittsdatum usw.)
Da ich oftmals in einem Formlar alle "aktiven" wie auch ausgeschiedenen Mitglieder bearbeiten muss, wollte ich mir ein Formular erstellen, in welchem ich die hinterlegte Datenquelle (Abfrage oder Tabelle) automatisch in "aktive Mitglieder" und "ausgeschiedene Mitglieder" filtern kann.
Diese Unterscheidung passiert aber nur indem ich das Feld: "Austrittsdatum" betrachte. Ist das Feld Leer, ist der Jugendliche noch aktiv, wenn ein Datum drin steht, ist der Jugendliche ausgeschieden.
Bisher hab ich immer zwei Formulare benutzt, welche jeweils auf eine Abfrage zugfen (einmal alle Ausgeschiedenen, einmal alle ativen).

Mein Wunsch: Ein Formular, mit Markierfeld (oder alternativ 2 Optionsfelder) mit welchen ich von "aktiv" auf "ehemalig" umschalten könnte.

Ich habe nun schon etliche Forenbeiträge durchgelesen, leider ist nirgendwo diese "einfache" Aufgabe behandelt.

Wäre wirklich der Hammer, wenn mir einer von euch auf die richtige Fährte leiten könnte. Ich hab leider keine Ahnung in welche Richtung ich suchen/mich informieren sollte.

Gruß Markus
tobiman26
***
Beiträge: 63
Registriert: Mi, 20.01.2016 15:17
Kontaktdaten:

Re: Filter mit Markierfeld steuern

Beitrag von tobiman26 »

Bitte schön
Jugendarbeit.odb
(14.19 KiB) 165-mal heruntergeladen
Mfg Tobias 8)

Windows 7 64bit + AOO 4.1.2 + LO 5.0.0.0
OpenSUSE 42.1 32 bit + LO 5.0.2.2
ziegelmak
Beiträge: 3
Registriert: Do, 07.04.2016 10:42

Re: Filter mit Markierfeld steuern

Beitrag von ziegelmak »

Hallo freedom/Tobias,
erstmal vielen Dank für eure Hilfbereitschaft.
@ Tobias
Hab mir eben deine Beispieldatenbank angesehen. Vom Prinzip her macht diese auch genau was ich brauche.
ABER:
Ich habe bereits eine recht große bestehende Datenbank, in der schon viele Daten drin stehen. Und die "Auswahl/FIlter" der Daten (also ob noch Aktiv oder bereits Ausgeschieden) sollte wenn möglich nur über das Feld Austrittsdatum geschehen. (Alternativ müsste ich für jeden Datensatz ein zusätzliches Feld machen, welches ich dann für jeden Datensatz manuell mit aktiv/ausgeschieden markieren muß)

Meine Versuchungen gingen in folgende Richtung:
Mit Macro das Markierfeld auslesen und dann sowas wie eine If-Anweisung zu generieren:
If Markierfeld = TRUE Then Filtern nach Austrittsdatum IS NOT NULL (irgend ein Datum steht im Feld Austrittsdatum)
ELSE Filtern nach Austrittsdatum IS NULL (Feld leer und somit Person noch aktiv)
Dieses Macro dann über "Status geändert" vom Markierfeld ausführen lassen.

Leider hab ich schon im Internet gesucht wie ein wilder, und finde keine Möglichkeit eine Parameterabfrage zu erstellen, wo der Parameter von einem Makro her übernommen wird. Mit Macro das Markierfeld auslesen hätte ich, hierzu findet man genügend Tipps.

Bin für jeden Denkanstoß dankbar.
Gruß Markus
tobiman26
***
Beiträge: 63
Registriert: Mi, 20.01.2016 15:17
Kontaktdaten:

Re: Filter mit Markierfeld steuern

Beitrag von tobiman26 »

Alles klar verstehe ich denk mal darüber nach vielleicht fällt mir was ein
Mfg Tobias 8)

Windows 7 64bit + AOO 4.1.2 + LO 5.0.0.0
OpenSUSE 42.1 32 bit + LO 5.0.2.2
tobiman26
***
Beiträge: 63
Registriert: Mi, 20.01.2016 15:17
Kontaktdaten:

Re: Filter mit Markierfeld steuern

Beitrag von tobiman26 »

Code: Alles auswählen

SUB FilterIF (oEvent AS OBJECT)
DIM nfilter AS DATE
oForm = ThisComponent.Drawpage.forms.MainForm
oSubForm = oForm.getByName("SubForm")
ocolumn = oForm.FindColumn("Aktiv")
ocolu = oForm.getint(ocolumn)
REM Msgbox (ocolu,,"")
nfilter = 0
IF ocolu = 0 then
MSGBOX("NULL",,"")
oSubForm.Filter "(""Austritt""='"+nfilter+"')"
oSubForm.reload
Else oSubForm.Filter "(""Austritt"">'"+nfilter+"')", MSGBOX ("NICHT NULL",,"")
oSubForm.reload
 END IF

END SUB

SUB FilterSpeichern(oEvent AS OBJECT)
oForm = ThisComponent.Drawpage.forms.MainForm
oForm.updateRow
END SUB

Sub Filtern
FilterSpeichern(ThisComponent)
FilterIF(ThisComponent)
End Sub
Also ich hab mein bestes gegeben und Probiert
aber bekomme es nicht hin hier das Makro soweit wie ich es hinbekommen habe ich hoffe du verstehst es und vielleicht hilft es dir ja eine Lösung zu finden
wenn du es schaffst kannst du ja mal die Lösung hochladen
Mfg Tobias 8)

Windows 7 64bit + AOO 4.1.2 + LO 5.0.0.0
OpenSUSE 42.1 32 bit + LO 5.0.2.2
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Filter mit Markierfeld steuern

Beitrag von RobertG »

Hallo *,

ich habe mir erlaubt, das Beispiel von Tobias einmal etwas zu modifizieren: Zwei Optionsbuttons, einer auf 'aktiv', der zweite auf 'ausgetreten'. Beide sind an das gleiche Makro gekoppelt. Der Filter wird direkt im Formular ausgeführt.
Die Filterung mittels Filtertabelle macht dann am meisten Sinn, wenn Makros möglichst wenig genutzt werden sollen. Mit so einer Filtertabelle kann dann über die ursprüngliche Konstruktion von Tobias mit Hilfe eines Buttons in dem zu filternden Formular gefiltert werden. Das erfordert ohne Makro aber eben einen zusätzlichen Klick auf den Button.

Gruß

Robert
Dateianhänge
Jugendarbeit.odb
direkte Filterung des Formulars
(14.02 KiB) 180-mal heruntergeladen
ziegelmak
Beiträge: 3
Registriert: Do, 07.04.2016 10:42

Re: Filter mit Markierfeld steuern

Beitrag von ziegelmak »

Hallo wieder,

@Tobias, vielen Dank für deine Hilfe und die bereitgestellte Beispieldatei ;-)

@Robert
WOW DER HAMMER, VIELEN VIELEN Dank du glaubst gar nicht wie lange ich gesucht hab, um überhaupt mal einen Lösungsansatz zu finden. Und du lieferst gleich mal die komplette Lösung. Genau das habe ich gesucht. Bin total Glücklich.
Nochmals Daumen hoch und allerhöchsten Repekt und meinen Dank an euch alle.

Gruß Markus
tobiman26
***
Beiträge: 63
Registriert: Mi, 20.01.2016 15:17
Kontaktdaten:

Re: Filter mit Markierfeld steuern

Beitrag von tobiman26 »

Robert Hut ab!!
wo ich mit meinem Latein am Ende bin kommst du immer und haust ein raus das ist Wahnsinn
Wie lange arbeitest du schon mit OO und LO?
Mfg Tobias 8)

Windows 7 64bit + AOO 4.1.2 + LO 5.0.0.0
OpenSUSE 42.1 32 bit + LO 5.0.2.2
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Filter mit Markierfeld steuern

Beitrag von RobertG »

Hallo Tobias,

Danke für die Rückmeldung.
tobiman26 hat geschrieben:Wie lange arbeitest du schon mit OO und LO?
Ich habe mit StarOffice noch unter DOS angefangen. Meine ersten Datenbanken habe ich mit StarOffice 5.0 erstellt - damals mit Adabas. Um aber Makros auch nur halbwegs zu verstehen war es dann doch ein steiniger Weg. Mittlerweile habe ich raus, wie ich xray vernünftig einsetze, um bestimmten Eigenschaften auf die Spur zu kommen. Das hilft in dem Zusammenhang recht viel.

Gruß

Robert
tobiman26
***
Beiträge: 63
Registriert: Mi, 20.01.2016 15:17
Kontaktdaten:

Re: Filter mit Markierfeld steuern

Beitrag von tobiman26 »

Wahnsinn das ist lange
Mfg Tobias 8)

Windows 7 64bit + AOO 4.1.2 + LO 5.0.0.0
OpenSUSE 42.1 32 bit + LO 5.0.2.2
Antworten