Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Bericht anhand Mehrfeldlistenfeldeinträge drucken.

Begonnen von Xoar, Dezember 28, 2016, 16:00:55

⏪ vorheriges - nächstes ⏩

Xoar

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

DF6GL

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.

Xoar

#2
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 & ")"



DF6GL

HAllo,

schreib mal so:


.
.
KriteriumStr = KriteriumStr & Me!ListDrucken.ItemData(varIndex) & ","

Xoar

Danke Franz,

das war der Fehler. Unglaublich, da guckt man ne Stunde auf den Code und merkt das nicht.

Gut das es dich gibt ;)