Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Formular, Mehrauswahl > Bericht generieren

Begonnen von WhiteCrow, Mai 19, 2026, 13:48:55

⏪ vorheriges - nächstes ⏩

WhiteCrow

Tach ProfiLeutz,

folgendes Scenario:

Ich habe im einem Formular (frm_BerichtsGenerator) drei ListBoxen:
lst_Standort,
lst_Kategoieen (Mehrfachauswahl) und
lst_Zustand (Mehrfachauswahl)
mit d.Datenherkunft und GROUP BY von/im eine Abfrage (qry_BerichtsGenerator) mit mehreren Tabellen.
Screenshot 1

Jetzt, bei einem Klick auf dem "Bericht generieren" -Button, wird via:
Private Sub btn_Generieren_Click()

    Dim strFilter As String
    Dim varItem As Variant
   
    Dim strKategorie As String
    Dim strZustand As String

    ' ===== Standort (Einzelauswahl) =====
    If Not IsNull(Me.lst_Standort) Then
        strFilter = "[Standort] = '" & Me.lst_Standort & "'"
    End If

    ' ===== Kategorie (Mehrfachauswahl) =====
    If Me.lst_Kategorie.ItemsSelected.Count > 0 Then
        For Each varItem In Me.lst_Kategorie.ItemsSelected
            strKategorie = strKategorie & "'" & Me.lst_Kategorie.ItemData(varItem) & "',"
        Next varItem
       
        strKategorie = Left(strKategorie, Len(strKategorie) - 1)
       
        If strFilter <> "" Then strFilter = strFilter & " AND "
        strFilter = strFilter & "[Kategorie] IN (" & strKategorie & ")"
    End If

    ' ===== Zustand (Mehrfachauswahl) =====
    If Me.lst_Zustand.ItemsSelected.Count > 0 Then
        For Each varItem In Me.lst_Zustand.ItemsSelected
            strZustand = strZustand & "'" & Me.lst_Zustand.ItemData(varItem) & "',"
        Next varItem
       
        strZustand = Left(strZustand, Len(strZustand) - 1)
       
        If strFilter <> "" Then strFilter = strFilter & " AND "
        strFilter = strFilter & "[Zustand] IN (" & strZustand & ")"
    End If

    ' ===== Bericht öffnen =====
    If strFilter = "" Then
        DoCmd.OpenReport "rpt_Auswertungs-Bericht", acViewPreview
    Else
        DoCmd.OpenReport "rpt_Auswertungs-Bericht", acViewPreview, , strFilter
    End If

End Sub
...zwar eine "Berichts-Vorlage" (rpt_Auswertungs-Bericht) fehlerfrei geöffnet,
je doch ohne Daten.

Screenshot 2

Habt Ihr eine Idee, was ich dabei falsch machen könnte oder
noch dafür "veranstalten" muss?

Für eure Antworten bedanke mich im Voraus und mit LG *.crow

EDIT: wenn ich keinem Auswahl treffe, bzw. Auswahl Zurücksetze und auf Generieren klicke,
sodann wird das Bericht mit allen Datensätzen von der verbundene Abfrage dargestellt.

Knobbi38

#1
Ich würde mal sagen, da wird deine Where-Bedingung falsch sein, ein "Filter" ist das ja nicht. Überprüfe die Bedingung in dem du an geeigneter Stelle eine Breakpoint setzt oder dir den Inhalt von strFilter im Dirktfenster per Debug.Print ausgeben lässt.

Hat sich eigentlich dein anderer Thread erledigt? Du hast keine Rückmeldung gegeben.  >:(

PhilS

Zitat von: WhiteCrow am Mai 19, 2026, 13:48:55Habt Ihr eine Idee, was ich dabei falsch machen könnte
Für sich genommen sieht dein Code plausibel und korrekt aus.
Allerdings geht aus deinem Posting nicht hervor, welche Datentypen die relevanten Spalten (Standort, Kategorie, Zustand) haben. Dein Code ist für Text-Spalten ausgelegt, was eher unüblich wäre. Sinnvollerweise speichert man numerische Fremdschlüssel. Dann würden die Begrenzer (') um deine Kriterienwerte entfallen.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor