Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Filter mit checkbox

Begonnen von voipfreak, August 26, 2012, 00:08:52

⏪ vorheriges - nächstes ⏩

voipfreak

Hallo Zusammen,

Ich schreie um Hilfe  ;)

Ich habe eine Datenbank in der versch. Mitarbeiter und deren Tätigkeiten etc. gespeichert werden.
Ich habe ein Formular (aus einer Abfrage) erstellt in der diese ALLE aufgelistet werden. In diesem Formular möchte ich
mittels versch Checkboxen die Datensätze Filtern. Z.b. Mit dem Klick auf die Box  Herr und Führerschein möchte ich alle Männlichen Mitarbeiter gefiltert gaben die einen Führerschein haben. Wenn ich jetzt noch die Box Pkw anklicke sollen alle Männlichen MA die einen Führerschein und Pkw haben gefiltert werden.

Ich habe bereits gegoogelt aber nichts gefunden und verzweifele gerade hier :-(

Kann mir hier jemand helfen ?

Danke euch schon einmal im Voraus

lg Voipfreak

database

#1
Hallo,

dein Vorhaben ist zwar realisierbar, jedoch wirst du dazu schon ein paar Zeilen VBA benötigen.

Einen Filter aus der Checkbox kannst du direkt setzen z.B. im Klick Ereignis:

If Me.DeineChekbox = -1 Then
Me.Filter = " Geschlecht = 'm'"
Me.FilterOn = True
End If

Was du aber noch brauchst idt eine String-Variable, in der du die einzelnen Filterkriterien zusammenfassen kannst und den Filter auf Kommando gemeinsam anwendest.

voipfreak

Hey database,

danke erstmal für deine Antwort.
Der von Dir beschriebene Code funktioniert tadellos. Wie kann ich denn die Strings schreiben? Sorry dass ich so blöd frage aber mit dieser Form der Filterung habe ich bislang noch nichts zu tun gehabt.


Gruß

Voipfreak

DF6GL

#3
Hallo,



Sub btnFiltern_Click()
Dim strFilter as String


If Me!Herr then
strFilter =  strFilter & " And Geschlecht ='m'"
End If




If nz(Me!Führerschein,0) then
strFilter =  strFilter & " And Führerschein <> 0"
End If


If nz(Me!PKW,0) then
strFilter =  strFilter & " And PKW <> 0"
End If



'oder, je nachdem, was gedacht ist
'strFilter = strFilter & " And Führerschein = " & nz(Me!Führerschein,0)
'strFilter = strFilter & " And PKW= " & nz(Me!PKW,0)



if Len(strFilter) >0 then strFilter =Mid(strFilter ,6)

Me.Filter =strFilter
Me.FilterOn = True

End Sub



Eine solche Filterung mittels Checkboxen ist allerdings nicht zu empfehlen....

voipfreak

Hey DF6GL,

danke für deine Mühe, was würdest du denn empfehlen an dieser
Stelle ?

Danke Dir

Gruß Voipfreak


voipfreak

Servus,

habe mir deine Muster mal angeschaut und komme leider immer noch nicht damit zurecht.

Habe aus einem andren Forum folgenden Tipp bekommen:

Zitat:

Ich vermute, du willst keinen zusätzlichen Button für "Filter anwenden". D.h. du musst beim Ereignis: "beim Fokusverlust" bei JEDER Controllbox eine SUB aufrufen, die den Filter anwendet.

Sub Filter_anwenden
Dim Masterfilter as String

'Filter zusammenbauen
Masterfilter = ""

'diese Routine für jede Checkbox erstellen!
If Me.Checkbox = true then 'nur ausführen wenn ausgewählt
   Masterfilter = Masterfilter & iif(len(masterfilter)>0," & ","") & " [Anrede] = TRUE "
endif

If len(Masterfilt)>0 then
   Me.Filter = Masterfilter
   Me.FilterOn = True
   Me.Requery
endif

End sub


Nur wie sag ich dem Filter dass das Kriterium z.b. die Anrede Herr ist ? Diese Option geht auch nicht :-(

Hilfe !!!

Gruß Voipfreak