Seite 1 von 1

Kombinations-/Listenfeld als Filter für ein Formular

Verfasst: Di, 01.05.2007 21:06
von egerlach
Ich will mit einem Kombinations- oder Listenfeld einen Filter auf ein Fomular für Verwaltung von Namen + Adressen setzen. Ich meine auch schon alles zu haben, nur wird bei Änderung des Kombinationsfeldes (=Filter "regio") auf einen anderen Wert dieser nicht an das Subformular (=Verwaltung Namen) übergeben. Wenn ich in den Entwurfsmodus schalte und wieder zurück, DANN funktioniert es! Es funktioniert also nur beim ERSTEN Mal, weil sich OO-Base irgendwie den letzten Filter merkt.

Wie schaffe ich es, daß bei jedem Filterwechsel auch tatsächlich das Unterformular aktualisiert wird? - Es ist eine 1:n Beziehung von Filter zum Unterformular (=TabellenKontrollfeld), klar!

Das habe ich gemacht: Formular -> Kombinationsfeld, Unterformular mit Tabelle der Namenverwaltung. Das Hauptformular basiert auf der Namenstabelle "name". Dem Unferformular ist eingetragen, dass "regio" auf "regio" übergeben werden soll. Was fehlt noch? - Gehts so überhaupt? Das Kombinationsfeld holt seine Werte übrigens aus einem "select regio from name" (später mal select distinct regio from name, klar ...)

Ich habe es mit einem Kombinations- wie mit einem Listenfeld versucht, bei beiden der gleiche Effekt: keine Aktualisierung des Unterformulares.

Gruss
Eckard , OO 2.1.0

Verfasst: Mi, 02.05.2007 11:45
von sarotti
Hallo Eckard,

wenn der Filter funktioniert, dann kann es sein, dass Du die Aktualisierung des Formulars (hier: "oFormSuche") nach dem Setzen des Filters vergessen hast?

Code: Alles auswählen

...
oFormSuche.reload()
....
Wenn bei einem neuen Aufruf des Formulars der Filter noch aktiv ist, dann hast Du ihn vermutlich mit dem Formular gespeichert. Den Filter kannst Du wie folgt ausschalten:

Code: Alles auswählen

....
oFormSuche.ApplyFilter=false
oFormSuche.Filter=""
oFormSuche.reload()
...
Gruss
sarotti

Verfasst: Do, 03.05.2007 01:32
von egerlach
sarotti hat geschrieben:Hallo Eckard,

wenn der Filter funktioniert, dann kann es sein, dass Du die Aktualisierung des Formulars (hier: "oFormSuche") nach dem Setzen des Filters vergessen hast?

Code: Alles auswählen

...
oFormSuche.reload()
....
?? Hä? Ich habe noch gar kein Modul programmiert! Ich bemerke aber gerade meinen Fehler: mein Kombinationsfeld schreibt seinen ausgewählten Wert einfach in einen anfangs zufällig gewählten Datensatz der Tabelle auf der das Formular beruht, in dem das Kombinationsfeld zu liegen kommt! Das ist völlig Unsinn! Es sollte der Wert an das Subformular weitergegeben werden als Filter! Meine Konstruktion ist Quatsch! Ich brauche kein Formular und Subformular, sonder einfach ein Kombinationsfeld, das - vermutlich nur über BASIC programmierbar - nach Aktualisierung dem Tabellenkontrollfeld mitteilt, das es ein "reload" machen soll mit dem im Kombinationsfeld gesetzten Wert!
sarotti hat geschrieben: Wenn bei einem neuen Aufruf des Formulars der Filter noch aktiv ist, dann hast Du ihn vermutlich mit dem Formular gespeichert. Den Filter kannst Du wie folgt ausschalten:

Code: Alles auswählen

....
oFormSuche.ApplyFilter=false
oFormSuche.Filter=""
oFormSuche.reload()
...
Den Code oben verstehe ich ... hmmm ... wie aber setze ich einen Filter? Mit MainForm_Grid.regio.Filter=ComboBox.value ????
Also die Syntax ist jetzt frei erfunden: MainForm_Grid heißt mein Tabellen-Kontrollfeld, regio ist der FEldname, auf den der Filter angewendet werden soll, ComboBox ist der Name des Kombinationsfeldes. Wie setze ich den Filter? Wie lese ich das Kombinationsfeld aus? - Also jetzt alles in einem Fomular, nix Subformular mehr.

Mein Vorschlag:

Code: Alles auswählen

Sub Main
MainForm_Grid.ApplyFilter=false
MainForm_Grid.Filter=""
MainForm_Grid.regio.Filter=ComboBox.value
MainForm_Grid.reload() 
msgbox "Filter versucht zu setzen"
End Sub
Wo trage ich denn eigentlich dann das Makro ein? Unter "Beim Auslösen"? Unter "Bei Taste gedrückt?" Unter "Nach dem Aktualisieren?" - Alles völlig mißverständliche Ereignisse bei einem Kombinationsfeld, um nicht zu sagen echter Schrott ... :0
Habe das Basic-Modul überall mal reingehängt, es wird aber NIRGENDWANN ausgeführt! Habe eine msgbox eingefügt, die wird nämlich nie angezeigt! Was ist denn das?? Kann mir hier jmd sagen, was für ein Ereignis es sich schimpft, wenn in dem Kombinationsfeld irgendetwas ausgewählt wurde???

Gruss
Eckard[/quote]

Re: Kombinations-/Listenfeld als Filter für ein Formular

Verfasst: Do, 22.11.2007 09:28
von vueloman
Versuchs mal damit

viewtopic.php?f=8&t=14875