PDA

Vollständige Version anzeigen : FilterOn auswerten


Roland04
23.03.2006, 17:21
hallo leutz :-)
situation =
1 mainform mit subform
wenn im subform mit zb. auswahlbasiertem filter gefiltert wird, so ist dann im subform FilterOn=true.

problem: um im mainform anzuzeigen ob im subform FilterOn true oder false ist möchte ich eine option auf -1 / 0 setzen was aber leider nicht gelingt, denn egal bei welchem event - zb. formcurrent, mouseup oder was auch immer im mainform oder aber auch im subform wird der code beim filter setzen nicht ausgeführt - sprich das event tritt offenbar nicht ein!
sehr wohl aber bei "filter/sortierung entfernen" ...

wie lässt sich ergo der wechsel von FilterOn = false auf true auswerten?
egal ob vom mainform aus oder vom subform.

Nouba
23.03.2006, 18:28
Im Form_Current des Unterformulars sollte der Zustand von Me.FilterOn zu erfahren sein.

Roland04
23.03.2006, 18:39
eben leider nicht! genau das ist es doch ... :-(
wenn du mit rechtsklick das mousemenu öffnest und dann zb auswahlbasierten filter anwendest wird code der im subform im form_current steht nicht ausgeführt!

Nouba
23.03.2006, 19:21
Bei mir funktioniert das auch bei der Verwendung eines auswahlbasierten Filters. Zeige bitte den nicht funktionierenden Kode.

Roland04
23.03.2006, 20:01
[code]
Private Sub Form_AfterUpdate()
If Me!FilterOn = True Then
Me.Parent.FiltOn = -1
Else
Me.Parent.FiltOn = 0
End If
Me.Parent.Refresh
End Sub

Private Sub Form_AfterUpdate()
If Me.FilterOn = 0 Then
Forms!frm_popAnbotInsert1.Form.FilterOn = 0
Else
Forms!frm_popAnbotInsert1.Form.FilterOn = -1
End If

Forms!frm_popAnbotInsert1.Form.Refresh

Roland04
23.03.2006, 20:04
Private Sub Form_Current() 'im mainform
If Me!FilterOn = True Then
Me.Parent.FiltOn = -1
Else
Me.Parent.FiltOn = 0
End If
Me.Parent.Refresh
End Sub

Private Sub Form_Current() 'im subform
If Me.FilterOn = 0 Then
Forms!frm_popAnbotInsert1.Form.FiltOn = 0
Else
Forms!frm_popAnbotInsert1.Form.FiltOn = -1
End If

Forms!frm_popAnbotInsert1.Form.Refresh
End Sub


code wird aber auch bei Form_AfterUpdate etc. nicht ausgeführt!

Nouba
23.03.2006, 20:22
Eigenartig sieht Dein Konstrukt schon aus und ich sehe auch weit und breit kein Form_Current(), bei welchem man den Filterstatus abfragen kann. Bei so etwas kann man auch schnell in eine endlose Kaskade geraden.

Roland04
23.03.2006, 20:31
Private Sub Form_Current() 'im subform
If Me.FilterOn = True Then
Me.Parent.FiltOn = -1
Else
Me.Parent.FiltOn = 0
End If
Me.Parent.Repaint
End Sub

so läufts ... habe versehentlich nicht FiltOn (ist meine option) sonder FilterOn im Code gehabt - deshalb hat das ding seinen status nicht verändert :-)

ps.: mit .refresh gab natürlich schleife - hab nur eben code von meinem worksheet kopiert und der war nicht so ganz identisch ;-)

Nouba
23.03.2006, 20:44
... und das findet jetzt bei jedem Datensatzwechsel im UFo statt - nimm besser eine statische Variable und prüfe, ob wirklich eine Änderung des Filter-Status stattgefunden hat.

Roland04
23.03.2006, 23:04
das ist nur ein kurzer auszug - das setzen des standardfilters geschieht in verbindung mit spezialfilterauswahl über mehrere dropdownfelder die ihrerseits auf querys beruhen und 8 dynamischen querys zum einstellen der records in insgesamt 3 subforms auf einem mainform. zusätzlich kann dann noch mittels einer option der standardfilter für nur ein subform bedient werden da sonst mit filter entfernen in allen subforms die individuellen filter deaktiviert werden!

ich hab mich einfach nur auf das wesentliche beschränkt ... sorry ... aber wäre sonst sicher zu aufwendig

(ist ein form zur übersicht über bestellte artikel, fakturen, letzte bestellung des jeweiligen artikels, G&V over all, G&Vgemittelt und G&V / artikel und G&V / artikel gemittelt - das alles nach belieben pro monat, jahr etc.)

ergo nochmals sorry wenn ich mich nur auf den wesentlichen teil - ein problem selbst beziehe ;-)