Moin,
kurze Frage:
Ich möchte über ein Listenfeld, wo ich mit Mehrfeldauswahl diverse MitarbeiterIDs auswähle einen Bericht über nur die ausgewählenten Datensätze drucken.
Wie stell ich das am besten an?
Ein VBA Kriterium in der Abfrage der Berichtdatensatzherkunft erstellen und diese in VBA befüllen?
Würde dann ein String erzeugen, der alle IDs auflistet, ca. So in(1;3;6)
Damit sollte der Bericht korrekt gefiltert werden, oder geht das viel einfacher?
[edit]
So habs mal getestet, leider klappt das mit dem VBA Kriterium nicht.
Folgendes:
Ich habe in der Datensatzherkunftsabfrage unter MitarbeiterID als Kriterium [VBAKriteriumBericht] reingeschrieben.
In VBA erzeuge ich dann eine qdf und weise dem Kriterium meinem tollen String zu, klappt aber nicht.
Es kommt immer das Eingabeparameterfeld. Auch wenn ich da händisch In (2,3,4) eintrage klappt es nicht, NUR wenn ich es in der Abfrage direkt eintrage.
Gibt es da eine Lösung????
[edit2]
hab jetzt so versucht
DoCmd.OpenReport "ReportZeiterfassungMitarbeiter", acViewPreview, , "[MitarbeiterID] In " & KriteriumStr
klappt aber auch nicht, kommt immer die Meldung Laufzeitfehler 3075, Syntaxfehler in Ausdruck '[MitarbeiterID] In (2;3;4)'
Mensch, dass das auch immer so schwer sein muss....
Grüße
Hallo,
schau in die VBA-Hilfe zu "Itemsselected".
Damit kann die Kriterienliste für den Where-Condition-Parameter der Openreport-Methode aus den selektierten (markierten) Listenfeldeinträgen erstellt werden.
Ich bekomme es nicht hin....
hier mal meim Code
Dim varIndex As Variant
Dim KriteriumStr As String
For Each varIndex In Me!ListDrucken.ItemsSelected
KriteriumStr = KriteriumStr & Me!ListDrucken.ItemData(varIndex) & ";"
Next varIndex
KriteriumStr = Left(KriteriumStr, Len(KriteriumStr) - 1)
'Debug.Print KriteriumStr
DoCmd.OpenReport "ReportZeiterfassungMitarbeiter", acViewPreview, , "MitarbeiterID In (" & KriteriumStr & ")"
Hallo,
und was zeigt
Debug.Print KriteriumStr
?
2;3;4
HAllo,
schreib mal so:
.
.
KriteriumStr = KriteriumStr & Me!ListDrucken.ItemData(varIndex) & ","
Danke Franz,
das war der Fehler. Unglaublich, da guckt man ne Stunde auf den Code und merkt das nicht.
Gut das es dich gibt ;)