PDA

Vollständige Version anzeigen : Schaltfläche formularbasierter Filter werden inaktiv


anja_taucht
24.09.2003, 15:26
Hey vielleicht kann ja mal wieder einer von Euch mir helfen,

und zwar hab ich folgendes Problem. In meinem Formular hab ich eine Schaltfläche mit der ich den formularbasierten Filter aufrufe. Nun möchte ich durch eine weitere Schaltfläche im Formular meinen Filter anwenden. Sobald ich aber den formularbasierten Filter aufrufe, sind alle Schaltflächen in meinem Formular deaktiviert. :(

Gibt es da eine andere Möglichkeit, als über die Symbolleiste zu gehen?

Danke schon mal im voraus
Gruß Anja

drmat
24.09.2003, 17:23
Hi Anja,

falls ich dich richtig verstanden habe, kannst du folgendes (mit VB) machen:

1. Erstelle ein Textfeld für deinen Filter und z.B. zwei Buttons für das Ein- und Ausschalten des Filters.

Beim CmdBt FilterEin:

Me.Filter = "Name = '" & Me.DeinTextfeld.Value & '"
Me.FilterOn = True


Beim CmdBt FilterAus:

Me.FilterOn = False
Me.DeinTextfeld.Value=null


Gruss,

drmat

anja_taucht
25.09.2003, 06:24
Hey drmat,

klar so würde es gehen über das Textfeld. Aber der Charme des formularbasierten Filters ist in dem Fall man kann über Pulldown-Menüs schon alle Einträge sehen, die jemals gemacht wurden sind.

Im Anhang seht Ihr das Formular, mit dem Suchen Button wurde der formularbasierten Filter aufgerufen über einen weiteren Button sollte nun der Filter angewendet werden, aber leider werden alle Buttons inaktiv.

Gruß Anja

MRR
25.09.2003, 06:33
Hi Anja,
würde es was bringen, wenn Du über den Anwenden-Button die anderen Schaltflächen auf Enabled = True setzt?

anja_taucht
25.09.2003, 06:49
Bringt leider auch nichts.

Wie Ihr im obigen Anhang seht hab ich eine nicht so elegante Lösung über die Symbolleiste bis jetzt gewählt. Dort verbirgt sich ein Button Suche starten. Aber vielleicht geht es ja auch nur so! :confused:

Gruß Anja

MRR
25.09.2003, 07:14
Und wie wäre es, wenn Du die Liste (im folgenden als cbo1 benannt) auf Wertliste, keine Inhalte setzt. Dann könnte der Button folgendes tun:

Private Sub FilterMich_Click()
Dim i As Long
Dim blnSchonDa As Boolean
For i = 1 To cbo1.ListCount
If cbo1.Column(0, i) = cbo1.Value Then
blnSchonDa = True
Exit For
End If
Next
If Not blnSchonDa And cbo1.Value <> "" And Not IsNull(cbo1) Then
cbo1.RowSource = cbo1.Value & ";" & cbo1.RowSource
End If
If cbo1.Value <> "" Then
Me.Filter = "DeinSuchfeld='" & cbo1.Value & "'"
Me.FilterOn = True
Else
Me.FilterOn = False
End If
End Sub

Die letzten gesuchten Einträge stehen immer oben, ein leerer Eintrag zeigt alle Daten an.
Wäre das hilfreich?

anja_taucht
25.09.2003, 07:26
Hey MRR,

wenn ich Dich richtig verstanden habe, funktioniert dies nur, wenn ich immer im Feld Termin suche, oder?
Es kommt aber sehr oft vor, daß man über mehrere Felder die Suche einschränkt. Z.B. im Feld Thema suche ich nach *USA* und gleichzeitig im Feld Auftraggeber *xy*.

Gruß Anja

MRR
25.09.2003, 07:52
Hallo Anja,
das ging mir irgendwie aus Deiner Fragestellung nicht so ganz hervor...
Wenn Du über mehrere Felder suchen willst: Geschieht das denn aufgrund der Auswahl in EINEM Listenfeld??? Oder hast Du nicht vielmehr ein paar solcher Auswahllisten? Wenn Letzteres der Fall ist, müsste der Code entsprechend erweitert werden. Ohne Deine infrage kommenden Listen zu kennen oder auch die zu durchsuchenden Felder, fällt mir eine Antwort und Korrektur des Codes schwer. Könntest Du hierzu mal nähere Infos liefern?

anja_taucht
25.09.2003, 07:58
Hallo MRR,

nein ich suche nicht über ein Listenfeld, sondern über den formularbasierten Filter. Somit kann ich in jedem beliebigen Feld im Formular was angeben und filtern. Das Problem ist halt beim formularbasierten Filter, daß alle Buttons inaktiv werden, sobald er einmal aufgerufen wurde.

Hab ich mich nun verständlich ausgedrückt?

Gruß Anja

Köbi
25.09.2003, 08:16
Hallo Anja

Ich habe vor einiger Zeit ein Beispiel gefunden, welches das Problem löst.
Zum Anwenden des formularbasierten Filters wird eine eigene Symbolleiste eingeblendet.

Schau mal bei Kurt Ifanger nach der DB "suchen.zip"

http://mypage.bluewin.ch/ifanger/download/download.htm

anja_taucht
25.09.2003, 08:29
Hallo Köbi,

das mit der Symbolleiste hab ich schon implementiert, siehe Bild in .ppt. Ich dachte es gibt etwas eleganteres

Aber trotzdem Danke
Gruß Anja

Köbi
25.09.2003, 08:50
Hallo Anja

T'schuldigung, das habe ich übersehen.

Die Lösung von Kurt Ifanger ist zwar ein wenig anders, indem die Symbolleiste irgendwo "freifliegend" eingeblendet wird.

Sonst wirst Du Pech haben. Sämtliche Buttons werden im formularbasierten Filter deaktiviert. Als Ausweg bleibt meiner Meinung nach nur die Symbolleiste oder natürlich das Kontextmenu.

anja_taucht
25.09.2003, 08:58
Hallo Köbi,

das hab ich befürchtet, dann müssen halt die Anwender damit leben, daß man den Filter nur über die Symbolleiste aktivieren kann.

Euch allen Danke
Gruß Anja