Formular filtern (Access)

Katharina, Montag, 20.04.2020, 14:33 (vor 76 Tagen)
bearbeitet von Martin Asal, Montag, 20.04.2020, 18:54

Hallo,

ich habe eine Datenbank, bei der ich nach mehreren Funktionen filtern muss. Einzeln laufen diese gut. Aber sobald ich noch nach Datum filtern möchte werden alle anderen Filter aufgehoben. Könnt ihr mir sagen, was da falsch ist?

 
Private Sub Umschaltfläche156_Click()
    Me.Filter = "[Datum] between " & Format(Nz(Me!txtvon, Date), "\#yyyy-mm-dd\#") & " and " & Format(Nz(Me!txtbis, Date), "\#yyyy-mm-dd\#")
    Me.FilterOn = True
End Sub
 
 
 
Sub filter_ein()
    On Error Resume Next
    Dim strg As String
'alles anzeigen
    DoCmd.ShowAllRecords
'Vorgabe damit überhaupt etwas gefiltert wird
    strg = "Reklnr >0 "
'abgeschlossene Fehler
    If [Usch_abgeschlossen] = -1 Then
    strg = strg & " AND ([erledigt] Like 3)"
    End If
'offene Fehler:
    If [Usch_offen] = -1 Then
    strg = strg & " AND ([erledigt] between 1 and 2)"
    End If
'abgelehnte Fehler
    If [Usch_abgelehnt] = -1 Then
    strg = strg & " AND ([erledigt] Like 4)"
    End If
'Bearbeiter
    If [Komb_MA] > "" Then
        strg = strg & " AND [LiefBearbeiterID] =" & [Komb_MA]
    End If
 
''Datum (Ein versuch von mir, das Datum auch über den String zu filtern. Leider ohne Erfolg.)
'    If [txtvon] > "" Then
'        strg = strg & " AND [txtvon] <=" & [txtvon]
'    End If
'    If [txtbis] > "" Then
'        strg = strg & " AND [txtbis] >=" & [txtbis]
'    End If

'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'Identnummer
    If [Komb_Artikel] > "" Then
        strg = strg & " AND [LiefArtNr] = '" & [Komb_Artikel] & "'"
    End If
'Kunde
    If [Komb_kunde] > "" Then
        strg = strg & " AND [Kunde] =" & [Komb_kunde].Column(2)
    End If
'Lieferant
    If [komb_Lieferant] > "" Then
        strg = strg & " AND [Name1] ='" & [komb_Lieferant] & "'"
    End If
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

'Status
    If [Komb_Status] = "berechtigt" Then
        strg = strg & "AND [berechtigt] = True"
    End If
    If [Komb_Status] = "abgelehnt" Then
        strg = strg & "AND [abgelehnt] = True"
    End If
    If [Komb_Status] = "Kulanz" Then
        strg = strg & "AND [Kulanz] = True"
    End If
    If [Komb_Status] = "belastet" Then
        strg = strg & "AND [belastet] = True"
    End If
 
'Werk
    If [Komb_Werk] = "a" Then
        strg = strg & "AND ([WerkID] Like 1)"
    End If
    If [Komb_Werk] = "b" Then
        strg = strg & "AND ([WerkID] Like 2)"
    End If
    If [Komb_Werk] = "c" Then
        strg = strg & "AND ([WerkID] Like 3)"
    End If
    If [Komb_Werk] = "d" Then
        strg = strg & "AND ([WerkID] Like 4)"
    End If
 
 
'Filter einschalten
    DoCmd.ApplyFilter , strg
End Sub
 

Formular filtern

Martin Asal @, Montag, 20.04.2020, 19:11 (vor 76 Tagen) @ Katharina

Hallo Katharina,

was Filter betrifft so gilt: Es kann nur einen geben! In der einen Prozedur setzt du einen Filter mit DoCmd.ApplyFilter, und in der anderen Prozedur überschreibst du ihn mit Me.Filter.

Ich würde nun in der Sub "filter_ein" die Zeile DoCmd.ApplyFilter , strg ersetzen durch

Me.Filter = strg

(Nebenbei: Auch DoCmd.ShowAllRecords würde ich durch Me.FilterOn = False ersetzen, der Einheitlichkeit wegen)

Entscheidend ist aber folgende Änderung:

Private Sub Umschaltfläche156_Click()
    Dim strgDatum As String
    strgDatum = "[Datum] between " & Format(Nz(Me!txtvon, Date), "\#yyyy-mm-dd\#") & " and " & Format(Nz(Me!txtbis, Date), "\#yyyy-mm-dd\#")
    Me.Filter = Me.Filter & strgDatum
    Me.FilterOn = True
End Sub

Martin

Formular filtern

Katharina, Dienstag, 21.04.2020, 08:49 (vor 75 Tagen) @ Martin Asal

Hallo Martin,

Vielen Dank schon mal für die Hilfe. Leider hilft mir dass auch nicht weiter. Jetzt kommt nämlich wieder eine Fehlermeldung zwecks Laufzeitfehler 3075. :-(

Syntaxfehler (fehlender Operator) in Abfrageausdruck Reklnr >0 AND [berechtigt]= TrueAND ([WerkID] Like2)[Datum] between #2020-04-01# and #2020-04-20#.

Kannst du mir erklären, was da falsch läuft?

Formular filtern

Katharina, Dienstag, 21.04.2020, 11:28 (vor 75 Tagen) @ Martin Asal

Ich habe das Problem jetzt selbst gefunden.
Vielen Dank für deine Unterstützung. :-)

RSS-Feed dieser Diskussion
powered by my little forum