Access Datenfilter wie im Excel realisieren
Guten Tag zusammen!
Ich möchte gerne in einem Access Formular einen Datenfilter hinzufügen. Über jeder Spalte befindet sich ein Kombinationsfeld, mit den Daten der gesamten Spalte. Es gibt über jeder Spalte ein Kombinationsfeld mit den Daten der Spalten. Ziel ist es, dass wenn ich zb. den Namen eines Druckers selektiere, auch nur die Datensätze angezeigt werden, welche auch diesen Namen haben. Es ist eigentlich das selbe Prinzip wie bei Excel der Datenfilter.
Damit ihr es euch besser vorstellen könnt, habe ich zwei Screenshots gemacht:
[ Bild 1]
Datenfilter bei Excel
[ Bild 2]
So sollte es dan aussehen, aber eben mit Funktion :D
Ich danke euch schon im vorraus für euere Antworten
Gruss
Severin
Ich möchte gerne in einem Access Formular einen Datenfilter hinzufügen. Über jeder Spalte befindet sich ein Kombinationsfeld, mit den Daten der gesamten Spalte. Es gibt über jeder Spalte ein Kombinationsfeld mit den Daten der Spalten. Ziel ist es, dass wenn ich zb. den Namen eines Druckers selektiere, auch nur die Datensätze angezeigt werden, welche auch diesen Namen haben. Es ist eigentlich das selbe Prinzip wie bei Excel der Datenfilter.
Damit ihr es euch besser vorstellen könnt, habe ich zwei Screenshots gemacht:
[ Bild 1]
Datenfilter bei Excel
[ Bild 2]
So sollte es dan aussehen, aber eben mit Funktion :D
Ich danke euch schon im vorraus für euere Antworten
Gruss
Severin
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 35079
Url: https://administrator.de/contentid/35079
Ausgedruckt am: 26.11.2024 um 07:11 Uhr
13 Kommentare
Neuester Kommentar
Prinzipiell ganz einfach:
Me.Filter = "Spaltenname='" & Me![Kombinationsfeldname] & "'"
Me.FilterOn = True
Und das im "Nach Aktualisierung" Ereignis eintragen.
Allerdings ist es in Access so, das dieses Ereignis erst aufgerufen wird, wenn man aus dem Feld rausgeht, also nur auswählen und im Feld bleiben, triggert dieses Ereignis noch nicht.
Me.Filter = "Spaltenname='" & Me![Kombinationsfeldname] & "'"
Me.FilterOn = True
Und das im "Nach Aktualisierung" Ereignis eintragen.
Allerdings ist es in Access so, das dieses Ereignis erst aufgerufen wird, wenn man aus dem Feld rausgeht, also nur auswählen und im Feld bleiben, triggert dieses Ereignis noch nicht.
Hallo, Hier eine Lösung mit meheren Felder, die dem AutoFilter von Excel zimmlich nahe kommt:
Bitte die Lösung nicht einfach übernehmen, ich wollte nur zeigen wie man mehrere Kombi_Felder kombinieren kann. Wenn Fragen, einfach nochmal melden.
Gruss
Function ZK_Filter()
'*****************
Dim i As Integer
Dim CritName As String 'Mitarbeitername
Dim CritDate As String
Dim CritProjekt As String 'Projekt
Dim CritSelect As String 'Monatnr
Dim CritTestSelect As String 'Minat Buchstabe
Dim CritStatus As String 'Status
Dim CritOrt As String 'Ort
Dim CritStundensatz As String 'Stundensatz
Dim DatVar As Variant, DatVarFld As Variant
Dim CritGESAMT As String
Dim Wort(5) As String, WortPos(5) As Integer
Dim WortNr As Integer
Dim AnzWort As Integer
Dim Mldg As String
'Dim MM As Variant, DD As Variant, YY As Variant
'***
If IsNull(Me![Filter_Name]) Then CritName = "" Else CritName = "[name]='" & Me![Filter_Name] & "'"
If IsNull(Me![Filter_Date]) Then CritDate = "" Else CritDate = "[date]=#" & Format(Me![Filter_Date], "m\/d\/yy") & "#"
If IsNull(Me![Filter_Projekt]) Then CritProjekt = "" Else CritProjekt = "[projekt]='" & Me![Filter_Projekt] & "'"
If IsNull(Me![Filter_Select]) Then CritSelect = "" Else CritSelect = "[select]='" & Me![Filter_Select] & "'"
If IsNull(Me![Filter_Test_Select]) Then CritTestSelect = "" Else CritTestSelect = "[test select]='" & Me![Filter_Test_Select] & "'"
If IsNull(Me![Filter_Status]) Then CritStatus = "" Else CritStatus = "[status]='" & Me![Filter_Status] & "'"
If IsNull(Me![Filter_Ort]) Then CritOrt = "" Else CritOrt = "[ort]='" & Me![Filter_Ort] & "'"
If IsNull(Me![Filter_Stundensatz]) Then CritStundensatz = "" Else CritStundensatz = "[Stundensatz]='" & Me![Filter_Stundensatz] & "'"
'If IsNull(Me![Filter_Wort]) Then CritWort = "" Else GoSub WortFilter
'***
If CritName = "" Then CritGESAMT = "" Else CritGESAMT = CritName
If CritDate <> "" Then CritGESAMT = CritGESAMT & " AND " & CritDate
If CritProjekt <> "" Then CritGESAMT = CritGESAMT & " AND " & CritProjekt
If CritSelect <> "" Then CritGESAMT = CritGESAMT & " AND " & CritSelect
If CritTestSelect <> "" Then CritGESAMT = CritGESAMT & " AND " & CritTestSelect
If CritStatus <> "" Then CritGESAMT = CritGESAMT & " AND " & CritStatus
If CritOrt <> "" Then CritGESAMT = CritGESAMT & " AND " & CritOrt
If CritStundensatz <> "" Then CritGESAMT = CritGESAMT & " AND " & CritStundensatz
If Left(CritGESAMT, 4) = " AND" Then CritGESAMT = Mid(CritGESAMT, 6)
'***
If CritGESAMT = "" Then
Me.FilterOn = False
Me![FilterTxt] = ""
Else
Me.Filter = CritGESAMT
Me.FilterOn = True
Me![FilterTxt] = CritGESAMT
End If
Exit Function
Bitte die Lösung nicht einfach übernehmen, ich wollte nur zeigen wie man mehrere Kombi_Felder kombinieren kann. Wenn Fragen, einfach nochmal melden.
Gruss
Hallo Claude,
Hoffendlich liest du noch diesen Trend,
Hätte da ne bitte, vielleicht kannst du mir erklären wie und wo genau ich den Code einfügen soll.
Oder besser noch wenn du eine Beispiels db hast wo ich mir das genau angucken könnte
Wäre ne große Hilfe, ich sitze nämlich jetzt schon 2 tage und probiere genau das zu erreichen was du hier dargestellt hast.
Ich danke im Voraus und hoffe das du mir helfen kannst
Gruß
Untamed
Hoffendlich liest du noch diesen Trend,
Hätte da ne bitte, vielleicht kannst du mir erklären wie und wo genau ich den Code einfügen soll.
Oder besser noch wenn du eine Beispiels db hast wo ich mir das genau angucken könnte
Wäre ne große Hilfe, ich sitze nämlich jetzt schon 2 tage und probiere genau das zu erreichen was du hier dargestellt hast.
Ich danke im Voraus und hoffe das du mir helfen kannst
Gruß
Untamed
Hallo Severin,
Kleines Missverständnis? Wieso die Datei wieder löschen?
Ich wollte nur anmerken, das du schneller warst als ich, mit dem bereitstellen einer Beispielsdatenbank. Vielen Dank auch.
Wie oben geschrieben: Wenn noch Bedarf besteht, kann ich auch nochmal eine Beispielsdatenbank bereitstellen, da ich diesen Typ von Filter schon öfters eingebaut habe.
mfG
Claude
Kleines Missverständnis? Wieso die Datei wieder löschen?
Ich wollte nur anmerken, das du schneller warst als ich, mit dem bereitstellen einer Beispielsdatenbank. Vielen Dank auch.
Wie oben geschrieben: Wenn noch Bedarf besteht, kann ich auch nochmal eine Beispielsdatenbank bereitstellen, da ich diesen Typ von Filter schon öfters eingebaut habe.
mfG
Claude