Office: (Office 2010) Filter mit mehreren Kombinationsfeldern

Helfe beim Thema Filter mit mehreren Kombinationsfeldern in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Liebe Mitglieder Ich komme mit folgendem Problem nicht weiter. Ich möchte eine Übersicht (Endlosformular) stückweise eingrenzen. Dazu habe ich... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von accessGast, 9. April 2026 um 13:57 Uhr.

  1. accessGast hat Ahnung

    Filter mit mehreren Kombinationsfeldern


    Hallo Liebe Mitglieder

    Ich komme mit folgendem Problem nicht weiter. Ich möchte eine Übersicht (Endlosformular) stückweise eingrenzen. Dazu habe ich mehrere Kombinationsfelder. Mit den ersten beiden funktioniert der Filter, nehme ich ein drittes Kriterium hinzu, zeigt er wieder alles an.
    Dieser Code liegt bei "Nach Aktualisierung" des dritten Kombis.

    Code:
    Private Sub kboTest_AfterUpdate()
    
    Dim strFilter As String
    
    If cboAuswahlOrt <> "" Then
    strFilter = "OrtNr =" & "" & Nz(cboAuswahlOrt.Value) & " AND "
    
    End If
    
    If cboGVZAuswahl <> "" Then
    strFilter = strFilter & "t_gvz_MaNr = " & "" & (cboGVZAuswahl.Value) & " AND "
    
    End If
    
    If kboTest <> "" Then
    strFilter = strFilter = "Bezirk = " & "" & Nz(kboTest.Value) & " AND "
    
    End If
    
    strFilter = Left(strFilter, Len(strFilter) - 6) 'Den String um das letzte " AND " kürzen
    Me.Filter = strFilter
    Me.FilterOn = True
    
    End Sub
     
  2. knobbi38 hat Ahnung
    Hallo accessGast,

    anstatt in jeder Kombo eine eigene Prozedur zu verwenden, rufe eine gemeinsame Prozedur auf, z.B. "RefreshFilter", welche immer alle Komboboxen auswertet und dann den String komplett neu zusammen setzt und aktiviert bzw. deaktiviert. Alles andere ist Murks.

    Tip: verwende ein StringArray mit den einzelnen Filterbedingungen und dann Join(..., " and ") für das zusammensetzen - wenn die Filterbedingungen nur eingrenzende Bedingungen sind. Ansonsten müsste man die Logik noch um OR erweitern.

    Knobbi38
     
  3. accessGast hat Ahnung
    Hallo Knobbi38
    Vielen Dank für die schnelle Reaktion. Aber - puhh... Ich verstehe leider gerade nicht mal "Bahnhof" ;-)

    An sich war das bisher so ganz praktisch. Je nachdem welcher Kombo gewählt wurde, hat dann die Datensätze eingeschränkt. Weil je nach Anwendungsfall hab ich entweder nur die eine Einschränkung benötigt oder eben auch die zweite Einschränkung (zweites Kombo) In einigen Fällen benötige ich auch noch die dritte Einschränkung. Nur die bekomm ich leider nicht hin.

    Könntest Du oder jemand anders - vielleicht einen "kleinen" beispielhaften Code zur Verfügung stellen, den ich mir dann anpassen kann? Irgendwas damit ich mich damit weiter versuchen kann?
    Ich nehme an "OR" steht dann für "oder" wobei ich das "AND" benötige, da mit dem jedem weiteren Kombo weiter eingeschränkt wird.. ich kapier auch nicht - warum mein Code an der Stelle nicht mehr funktioniert, wo doch die ersten beiden tadellos einschränken..
     
  4. knobbi38 hat Ahnung

    Filter mit mehreren Kombinationsfeldern

    Wie wäre es mit ein wenig Vorarbeit deinerseits, z.B. einer kleinen Beispiel-DB. So etwas erhöht die Hilfsbereitschaft enorm. Filter mit mehreren Kombinationsfeldern *;)*
     
  5. Doming
    Doming Erfahrener User
    Hallo,
    angenommen, Deine Komboboxen arbeiten mit den Schlüsselfeldern, sind also nummerisch und haben den Standardwert 0:
    Code:
    Private strFilter As String
    
    Private Sub cboAuswahlOrt_AfterUpdate()
        Filtern
    End Sub
    
    Private Sub cboGVZAuswahl_AfterUpdate()
        Filtern
    End Sub
    
    Private Sub kboTest_AfterUpdate()
        Filtern
    End Sub
    
    Private Sub Filtern()
        strFilter = ""
        If cboAuswahlOrt > 0 Then Filterschleife "OrtNr = " & cboAuswahlOrt
        If cboGVZAuswahl > 0 Then Filterschleife "t_gvz_MaNr = " & cboGVZAuswahl
        If kbotest > 0 Then Filterschleife "Bezirk = " & kbotest
        If strFilter <> "" Then Me.Filter = strFilter
        Me.FilterOn = strFilter <> ""
    End Sub
    
    Private Sub Filterschleife(Criteria As Long)
        If strFilter <> "" Then strFilter = strFilter & " AND "
        strFilter = strFilter & Criteria
    End Sub
    Könnte es so laufen
    Gruß
    Doming
     
  6. knobbi38 hat Ahnung
    Hallo,

    Doming hat dir ja schon eine Lösung präsentiert, hier noch eine andere Variante. Dazu trägst du in den drei Komboboxen in der TAG-Eigenschaft das zu filternde Feld ein und in der Eigenschaft "AfterUpdate" den Ausdruck "=UpdateFilter()"

    Im Formular hast du dann folgenden Code:
    Code:
    Private Function UpdateFilter()
      Dim astrCriteria(2) As String
      Dim strCriteria As String
    
      Debug.Print "UpdateFilter(): ";
    
      astrCriteria(0) = MakeCriteria(cboAuswahlOrt, dbText)
      astrCriteria(1) = MakeCriteria(cboGVZAuswahl, dbLong)
      astrCriteria(2) = MakeCriteria(kboTest, dbText)
    
      strCriteria = Join(VBA.Filter(astrCriteria, "="), " AND ")
     
      Debug.Print strCriteria
    
      Me.Filter = strCriteria
      Me.FilterOn = CBool(Len(Me.Filter) > 0)
    End Function
    
    Private Function MakeCriteria(ctl As ComboBox, DataType As DataTypeEnum) As String
      If Not IsNull(ctl.Value) Then
        MakeCriteria = BuildCriteria(ctl.Tag, DataType, ctl.Value)
      End If
    End Function
    
    Die zu übergebenden Datentypen an MakeCriteria(), z.B. dbLong usw. musst du natürlich entsprechend deinen Felddatentypen anpassen.

    Knobbi38

    PS:
    Filterkriterien mit einem "=" im Filterstring werden von diesem Code nicht unterstützt!
     
  7. knobbi38 hat Ahnung
    Hier noch eine stark abgespeckte Variante, ähnlich der von Doming:
    Code:
    Private Const SQL_OPERATOR As String = " AND "
    
    Private Function UpdateFilter()
      Dim strCriteria As String
    
      ' Einfach alle Felder hintereinander weg verketten
      strCriteria = MakeCriteria(Me.cboAuswahlOrt, dbText) & _
                    MakeCriteria(Me.cboGVZAuswahl, dbLong) & _
                    MakeCriteria(Me.kboTest, dbText)
    
      ' Das erste " AND " am Anfang abschneiden, falls der String nicht leer ist
      If Len(strCriteria) > 0 Then strCriteria = Mid(strCriteria, Len(SQL_OPERATOR) + 1)
    
      Me.Filter = strCriteria
      Me.FilterOn = (Len(strCriteria) > 0)
    
      Debug.Print "Filter: " & IIf(strCriteria = "", "(keiner)", strCriteria)
    End Function
    
    Private Function MakeCriteria(ctl As ComboBox, DataType As DataTypeEnum) As String
      If Not IsNull(ctl.Value) Then
        MakeCriteria = SQL_OPERATOR & BuildCriteria(ctl.Tag, DataType, ctl.Value)
      End If
    End Function
    
    Private Sub Form_Load()
      Me.AllowFilters = False
      UpdateFilter
    End Sub
    
     
  8. accessGast hat Ahnung

    Filter mit mehreren Kombinationsfeldern

    Ein freundliches Hallo. Leider komm ich erst jetzt dazu zu lesen.
    Vielen Dank vorab.
    Knobbi38, Ja Beispiel DB-stimmt. Daran scheitert es bei mir meist auch aus Zeitgründen. Das muss hier immer alles nebenhehr gemacht werden (sonnst hab ich nichts, womit ich arbeiten kann) und daran schleift es dann wieder - die Zeit zu haben - das vorzubereiten (Beispiel-DB) Dafür Sorry. Ich bin quasi immer der Zeitgejagte zwischen ich möchte mir die Arbeit erleichtern, also für mich und meine Kollegen eine Lösung suchen und "ich habe leider an sich keine Zeit, etwas zu formen, was mir zusätzliche Arbeitszeit am Ende einspart" Wenn ich das hier nicht machen würde, würden wir immer noch mit Papierlisten umherrennen.
    Ich habe als erstes Doming seine Variante getestet. Es sind alles Felder vom Typ Zahl Long Integer. Trotzdem bekomme ich beim Test (Auswahl treffen) einen LZF 13 "Typen unverträglich"

    Filter mit mehreren Kombinationsfeldern upload_2026-4-10_16-37-53.png
     
  9. knobbi38 hat Ahnung
    Schön das du dir soviel Arbeit mit dem Bild machst, aber was soll ich damit anfangen, zumal das auch noch so klein ist, dass man nichts erkennen kann. Welche Inhalte welche Variablen haben, musst du so selber herausfinden, aber Filterschleife() erwartet einen Long-Wert, wenn dir das hilft.

    Bitte denke daran, dass die Helfer das hier ehrenamtlich machen und ihre Freizeit investieren. Wenn du für deine Firma nicht ebenso dazu bereit bist, wird es schwierig mit der Hilfe. Eine solche Aussage kommt meist nicht gut an.

    Knobbi38
     
Thema:

Filter mit mehreren Kombinationsfeldern

Die Seite wird geladen...
  1. Filter mit mehreren Kombinationsfeldern - Similar Threads - Filter mehreren Kombinationsfeldern

  2. Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche)

    in Microsoft Excel Hilfe
    Auswertung aus mehreren Registern erstellen (nur die Gelbmarkierten oder mit Datum von akt. Woche): Hallo zusammen, ich arbeite mit einer Excel-Arbeitsmappe, die mehrere Tabellenblätter enthält. Jedes Blatt dokumentiert bestimmte Vorgänge, und die Struktur der Daten ist in allen Blättern...
  3. SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste)

    in Microsoft Excel Hilfe
    SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste): Hallo zusammen, ich bräuchte Eure Hilfe, bei dem ich nicht weitere komme. Ich lasse importiere SQL-Daten über mehrere Abfragen im Editor vor filtern. Eine Spalte über einen Artikel...
  4. Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern

    in Microsoft Access Hilfe
    Vorkommen von Kunden in mehreren Tabellen per Abfrage filtern: Hallo Community, ich habe folgendes Problem beim Nutzen einer Access-Datenbank. Zunächst die Datenstruktur: [ATTACH] Dies sind die Tabellen meiner Datenbank. In der Tabelle "Adressliste"...
  5. Mehrere Namen aus Tabelle in eine Liste filtern

    in Microsoft Excel Hilfe
    Mehrere Namen aus Tabelle in eine Liste filtern: Hallo! Ich brauch eure Hilfe. Und zwar möchte ich aus einer Tabelle mehrere Namen in eine andere Liste filtern. Dabei geht es um Aktivitäten während einer Woche von verschiedenen Personen. In...
  6. Per SVERWEIS oder FILTER Ausgabe mehrerer Ergebnisse in neue Zeile möglich?

    in Microsoft Excel Hilfe
    Per SVERWEIS oder FILTER Ausgabe mehrerer Ergebnisse in neue Zeile möglich?: Hi Office-Hilfe Team, ich stehe aktuell vor einer - für mich - un lösbaren Aufgabe. Und zwar will ich auf Basis einer PRD-ID eine Suche durchführen und dann das gefundene Ergebnis in einer neuen...
  7. Filtern durch mehrere Kombinationsfelder

    in Microsoft Access Hilfe
    Filtern durch mehrere Kombinationsfelder: Hallo ich mal wieder, Ich möchte im Formular durch mehrere Kombinationsfelder eine Filterung von Datensätzen durchführen. Also ich habe eine: Tabelle = tbl_Bestellungen Abfrage =...
  8. Formular mit mehreren Kombinationsfeldern filtern

    in Microsoft Access Hilfe
    Formular mit mehreren Kombinationsfeldern filtern: Hallo zusammen, ich möchte gern in einem Formular mit mehreren Kombinationsfeldern filtern. Ich habe da hier im Forum schon etwas gefunden aber das hat mir nicht weitergeholfen. Ich habe eine...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden