Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Access Datenfilter wie im Excel realisieren

Frage Microsoft Microsoft Office

Mitglied: severinbuob

severinbuob (Level 1) - Jetzt verbinden

29.06.2006, aktualisiert 20.09.2007, 6138 Aufrufe, 13 Kommentare

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:

[eb0de1235522fd2f5871d41aa54122c2-screenshot015 - Klicke auf das Bild, um es zu vergrößern Bild 1]
Datenfilter bei Excel

[a1312c6b9f86beffb4ca5fadbefbfec0-screenshot017 - Klicke auf das Bild, um es zu vergrößern Bild 2]
So sollte es dan aussehen, aber eben mit Funktion :D



Ich danke euch schon im vorraus für euere Antworten

Gruss

Severin
Mitglied: AndreasHoster
29.06.2006 um 17:02 Uhr
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.
Bitte warten ..
Mitglied: Claude
30.06.2006 um 01:09 Uhr
Hallo, Hier eine Lösung mit meheren Felder, die dem AutoFilter von Excel zimmlich nahe kommt:
01.
Function ZK_Filter() 
02.
'***************** 
03.
Dim i As Integer 
04.
Dim CritName As String 'Mitarbeitername 
05.
Dim CritDate As String 
06.
Dim CritProjekt As String 'Projekt 
07.
Dim CritSelect As String 'Monatnr 
08.
Dim CritTestSelect As String 'Minat Buchstabe 
09.
Dim CritStatus As String 'Status 
10.
Dim CritOrt As String 'Ort 
11.
Dim CritStundensatz As String 'Stundensatz 
12.
Dim DatVar As Variant, DatVarFld As Variant 
13.
Dim CritGESAMT As String 
14.
Dim Wort(5) As String, WortPos(5) As Integer 
15.
Dim WortNr As Integer 
16.
Dim AnzWort As Integer 
17.
Dim Mldg As String 
18.
'Dim MM As Variant, DD As Variant, YY As Variant 
19.
'*** 
20.
If IsNull(Me![Filter_Name]) Then CritName = "" Else CritName = "[name]='" & Me![Filter_Name] & "'" 
21.
If IsNull(Me![Filter_Date]) Then CritDate = "" Else CritDate = "[date]=#" & Format(Me![Filter_Date], "m\/d\/yy") & "#" 
22.
If IsNull(Me![Filter_Projekt]) Then CritProjekt = "" Else CritProjekt = "[projekt]='" & Me![Filter_Projekt] & "'" 
23.
If IsNull(Me![Filter_Select]) Then CritSelect = "" Else CritSelect = "[select]='" & Me![Filter_Select] & "'" 
24.
If IsNull(Me![Filter_Test_Select]) Then CritTestSelect = "" Else CritTestSelect = "[test select]='" & Me![Filter_Test_Select] & "'" 
25.
If IsNull(Me![Filter_Status]) Then CritStatus = "" Else CritStatus = "[status]='" & Me![Filter_Status] & "'" 
26.
If IsNull(Me![Filter_Ort]) Then CritOrt = "" Else CritOrt = "[ort]='" & Me![Filter_Ort] & "'" 
27.
If IsNull(Me![Filter_Stundensatz]) Then CritStundensatz = "" Else CritStundensatz = "[Stundensatz]='" & Me![Filter_Stundensatz] & "'" 
28.
'If IsNull(Me![Filter_Wort]) Then CritWort = "" Else GoSub WortFilter 
29.
'*** 
30.
If CritName = "" Then CritGESAMT = "" Else CritGESAMT = CritName 
31.
If CritDate <> "" Then CritGESAMT = CritGESAMT & " AND " & CritDate 
32.
If CritProjekt <> "" Then CritGESAMT = CritGESAMT & " AND " & CritProjekt 
33.
If CritSelect <> "" Then CritGESAMT = CritGESAMT & " AND " & CritSelect 
34.
If CritTestSelect <> "" Then CritGESAMT = CritGESAMT & " AND " & CritTestSelect 
35.
If CritStatus <> "" Then CritGESAMT = CritGESAMT & " AND " & CritStatus 
36.
If CritOrt <> "" Then CritGESAMT = CritGESAMT & " AND " & CritOrt 
37.
If CritStundensatz <> "" Then CritGESAMT = CritGESAMT & " AND " & CritStundensatz 
38.
If Left(CritGESAMT, 4) = " AND" Then CritGESAMT = Mid(CritGESAMT, 6) 
39.
'*** 
40.
If CritGESAMT = "" Then 
41.
    Me.FilterOn = False 
42.
    Me![FilterTxt] = "" 
43.
Else 
44.
    Me.Filter = CritGESAMT 
45.
    Me.FilterOn = True 
46.
    Me![FilterTxt] = CritGESAMT 
47.
End If 
48.
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
Bitte warten ..
Mitglied: severinbuob
30.06.2006 um 14:55 Uhr
Erstmals grosses Lob für diese Idee, wirklich toll. Die Suchwerte dann in einem Textfeld speichern, alles kein Problem. Aber wie kann ich es realisieren, dass nur die jenigen Datensätze angezeigt werden, welche in diesem Textfeld vorhanden sind?

Vielen Dank

Gruss Severin
Bitte warten ..
Mitglied: Claude
30.06.2006 um 15:39 Uhr
Also das Textfeld 'Me![FilterTxt] = CritGESAMT' zeigt im Formular nur an, welcher Filter der Benutzer zusammengestellt hat. Die Arbeit macht eigentlich der Befehl:
01.
Me.Filter = CritGESAMT 
02.
Me.FilterOn = True
Bitte warten ..
Mitglied: Claude
30.06.2006 um 15:41 Uhr

Wenn mir jemand erklärt (...bin halt zu doof), wie man hier ein Bild anzeigt, dann mach' ich ein Screenshot von dem entsprechendem Formular.....
Bitte warten ..
Mitglied: Claude
03.07.2006 um 15:59 Uhr
Hallo Severin,
Der VBA-Code wird bei jedem Kombinationsfeld des Filters in der Eigenschaft "Nach Aktualisierung" hinterlegt.
Die Funktion wird im Klassenmodul des Formulars hinterlegt.
Gruss claude
Bitte warten ..
Mitglied: Untamed
19.09.2007 um 16:25 Uhr
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
Bitte warten ..
Mitglied: severinbuob
19.09.2007 um 16:32 Uhr
Salü Untamed,

Ich bin zwar nicht claude kann dir aber bestimmt auch helfen!
Hier eine beispiel DB --> http://www.carpenox.ch/download/datenfilter.rar

Gruss
Severin
Bitte warten ..
Mitglied: Claude
19.09.2007 um 20:35 Uhr
Hallo, Severin war schneller ....
Sollte noch Bedarf sein, einfach nochmal melden
Gruss
claude
Bitte warten ..
Mitglied: severinbuob
20.09.2007 um 08:20 Uhr
gut dan werde ich die datei wider löschen ^^
schönen tag noch!
gruss
severin
Bitte warten ..
Mitglied: Untamed
20.09.2007 um 11:01 Uhr
HI

Leute, ich danke euch sehr für die schnelle antworten!
Ich werd mich jetzt mal daran setzen und gucken ob ich das jetzt hin kriege!
Falls ich Probleme bekomme dann meld ich mich noch mal, und falls nicht dann DANKE ich euch recht herzlich für die arbeit und zeit die ihr investiert habt!

Gruß

Untamed
Bitte warten ..
Mitglied: Claude
20.09.2007 um 12:07 Uhr
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
Bitte warten ..
Mitglied: Untamed
20.09.2007 um 15:57 Uhr
Hallo!

Ich hab zwar gesagt falls es nicht klappt melde ich mich, und wenn doch dann nicht...
Aber ich bin so froh das es jetzt endlich funtz!
Deswegen mochte ich mich noch mal für die Hilfe bedanken!

DANKE DANKE

Gruß

Untamed
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (29)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Server-Hardware
Treiber für Server gesucht (15)

Frage von MeisterFuchs zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst Router für Schulnetz (14)

Frage von Waishon zum Thema LAN, WAN, Wireless ...