Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Jonny am Juli 22, 2010, 09:37:50

Titel: me.filteron
Beitrag von: Jonny am Juli 22, 2010, 09:37:50
Guten Morgen,

ich setzte per VBA einen Filter muss aber auch die normale Filterschaltfläche aktiv lassen.

Wenn jetzt jemand den Filter über die Standardschaltfläche entfernt will ich den VBA Filter wieder aktivieren.

Wie kann ich wo abfragen das der Filter deaktiviert ist.

Gruß

Jonny
Titel: Re: me.filteron
Beitrag von: database am Juli 22, 2010, 12:13:33
Hallo,

z.B. über eine Schaltfläche im Click-Ereignis


If Me.FilterOn Then
    MsgBox "ja"
Else
    MsgBox "nein"
End If


kannst du feststellen ob der Filter aktiv ist oder nicht.
Statt der MsgBox ein entsprechendes Codestück nach Belieben ausführen...   ;D

HTH

Peter

Titel: Re: me.filteron
Beitrag von: Jonny am Juli 22, 2010, 13:58:14
Hallo Peter,

erstmal vielen Dank für die Antwort.

Den If kenne ich schon aber über eine Schaltfläche geht es garnicht.

Der Hintergrund ist:
Jeder User meldet sich an und darf nur ein seinen Bereich arbeiten. Das wird durch den VBA-Filter erreicht.
Jetzt kann er aber selber in den gefilterten Daten weiterfiltern und halt auch den Filter deaktiviern.

Das Problem ist jetzt das er auch DS sieht die ihn nichts angehen.

Was ich suche ist ein Ereignis wo ich den If einsetzen kann.
Bei angewandenten Filter gibt es ja schon aber laut Debuger steht nach ausschalten der FilterOn noch auf True.

Vieleicht hast Du ja eine Idee.

Gruß

Jonny

Titel: Re: me.filteron
Beitrag von: database am Juli 22, 2010, 14:24:17
hallo,

ja, bei dem Hintergrund und den Infos ist es klar, dass mit einem Button nichts zu machen ist.

Zitatsteht nach ausschalten der FilterOn noch auf True
...somit würdest du ein Ereignis benötigen welches den Filter (FilterOn) auf False stellt sobald bestimmte Datensätze angezeigt werden.
Wenn das feststellbar wäre - also ein bestimmter angemeldetet Benutzer sieht JETZT unberechtigte Datensätze - KÖNNTE über Form_Current (wird beim Anzeigen von neuen Sätzen oder beim öffnen eines Formulars ... ausgelöst) der Filter zurückgesetzt und neu initialisiert werden.

Mehr kann ich im Moment nicht anbieten :-\

Grüße
Peter
Titel: Re: me.filteron
Beitrag von: DF6GL am August 04, 2010, 14:37:50
Hallo,

ZitatJeder User meldet sich an und darf nur ein seinen Bereich arbeiten. Das wird durch den VBA-Filter erreicht.

Da würde ich statt Filter die "User-Steuerung" mittels geeigneter Abfrage, die als Datenherkunft für das Form dient, erledigen. Dann kann nur innerhalb der von der durch die Abfrage "vorgefilterten" Datensatzgruppe (Formular-Recordset) nach Belieben weiter per Formular-Filter-Eigenschaft gefiltert werden.
Titel: Re: me.filteron
Beitrag von: Jonny am August 05, 2010, 14:05:13
Hallo Franz,
erstmal Danke für Deine Antwort,

Eine Abfrage ist nicht ganz so gut geeignet da der Filter recht kompliziert zusammengestellt ist.
Nach dem Motto alle sind gleich aber einige sind gleicher.

Ist aber ein guter Gedankenanstoss.

Als Recordsource nehme ich halt einen sql-string mit entsprechender where Klausel.

Gruß

Johann
Titel: Re: me.filteron
Beitrag von: DF6GL am August 08, 2010, 09:37:34
Hallo,

naja, mit "Abfrage" meine ich ja in diesem Zusammenhang den SQL-String.   :)

"Als Recordsource nehme ich halt einen sql-string mit entsprechender where Klausel."

genau so ist es richtig, d. h., den SQL-String per VBA zusammenbauen und der Recordsource-Eigenschaft zuweisen.