Neuigkeiten:

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

Mobiles Hauptmenü

Bericht: Parameterwert an Bericht übergeben

Begonnen von Trato Müller, Oktober 22, 2023, 10:55:02

⏪ vorheriges - nächstes ⏩

Trato Müller

Guten Tag,
ich habe eine Abfrage erstellt mit Abfragekriterien. Nun möchte ich mit Hilfe der Abfragekriterien meinen Bericht filtern. Ich möchte in diesem Fall meine Mitarbeiter anhand Kostenstellennummern filtern.

Dazu habe ich wie gesagt eine Abfrage mit Abfragekriterium. Der Bericht soll jetzt per Schaltfläche in einem Formular und Hilfe eines VBA Codes in der Vorschauansicht geöffnet werden. Angezeigt werden sollen nur Mitarbeiter mit der Kostenstelle "2331" 

Berichtsname: brUebersicht_alle
Kriteriumfeldname: Kostenstelle


Dazu hatte ich folgenden Code zusammengebastelt.

Private Sub TestCombo_Click()
Dim stDocName As String
stDocName = "brUebersicht_alle"
DoCmd.OpenReport stDocName, acPreview, , "Kostenstelle=""2331"""
End Sub


Leider kriege ich immer nur einen Fehler heraus - "Lautzeitfehler '3464' - Datentypkonflikt in Kriterienausdruck". Ich habe bereits lange im Forum und auch generell im Internet gesucht, aber ohne VBA Kenntnisse ist es wirklich sehr schwierig solche Dinge zu realisieren - ich bin für Hilfe wirklich sehr dankbar.


Sollten Informationen fehlen, egal welcher Natur, liefere ich diese gerne nach!
Sollte es einen anderen Lösungsweg geben, dann auch gerne melden :)


Vielen herzlichen Dank!
Trato Müller


Trato Müller

Ein kleiner Nachtrag - was ich ebenfalls probiert habe.

Private Sub TestCombo_Click()
    ' Das feste Abfragekriterium als Zeichenfolge definieren
    Dim strKriterium As String
    strKriterium = "2331"

    ' Den Bericht öffnen und das Abfragekriterium an die Abfrage übergeben
    DoCmd.OpenReport "brUebersicht_alle", acViewPreview, , "Kostenstelle = '" & strKriterium & "'"
End Sub




Trato Müller

Mittlerweile, nach vielen hin und her habe ich den Fehler wohl gefunden. Im Code muss man nicht den Feldnamen eintragen, sondern den Kriterien Ausdruck.

Jetzt erscheint zwar kein Laufzeitfehler, aber trotzdem scheint er den festen Kriterien Filter nicht zu übergeben, weil sich beim Klick auf meine Schaltfläche folgendes öffnet:


MzKlMu

#3
Hallo,
das Wichtigste hast Du unterschlagen:
Welcher Datentyp hat die Kostenstelle ?
Außerdem wäre es auch sinnvoll den letzten Versuch zu zeigen. Wie sonst soll da ein Fehler gefunden werden ?
Gruß Klaus

Trato Müller

Hallo MzKIMu,
vielen Dank für die Antwort!

Der Felddatentyp ist eine Zahl.

Hier mein Kriterium:



---

VBA:

Private Sub btBericht_lagergesamt_Click()
    ' Das feste Abfragekriterium als Zeichenfolge definieren
    Dim strKriterium As String
    strKriterium = "2331"

    ' Den Bericht öffnen und das Abfragekriterium an die Abfrage übergeben
    DoCmd.OpenReport "brUebersicht_alle", acViewPreview, , "Kostenstellen = '" & strKriterium & "'"
End Sub


Die Kostenstellennummer, welche ich gerne sichten würde ist die "2331"
Leider erscheint weiterhin ein Parameterfenster und die Anforderung/ der Kriteriumswunsch wird nicht übergeben.

MzKlMu

#5
Hallo,
ZitatDer Felddatentyp ist eine Zahl.
Warum in aller Welt machst Du dann aus der Zahl einen String ?
Das Feld heißt auch Kostenstelle und nicht Kostenstellen.
Private Sub btBericht_lagergesamt_Click()
    ' Den Bericht öffnen und die Bedingung(en) übergeben
    DoCmd.OpenReport "brUebersicht_alle", acViewPreview, , "Kostenstelle = 2331"
End Sub
In der Abfrage darf kein Kriterium sein.
Gruß Klaus

Trato Müller

Ich möchte mich herzlich bedanken für die Anpassung. Tatsächlich, wie auch angemerkt, programmiere ich überhaupt nicht. Das ich heute Berichte filtern muss ich eher Zufall - normal mache ich ganz leichte Dinge über Makros.

Eine weitere Frage, welche sich mir stellt, ist ob man auch zwei Kriterien haben darf und wie dies aussehen würde?

Dankeschön!
 

PS: Ich war generell auf dem falschen Dampfer. Daher auch String und Kostenstellen.

MzKlMu

Hallo,
natürlich kann man mehrere Kriterien verwenden.
Man muß nur auf die Datentypen achten.
Gruß Klaus

Trato Müller

Vielen Dank für die Antwort. Ich habe zum Beispiel auch Checkboxen in der Abfrage - kann man diese auch filtern?

Könntest du mir da ein Beispiel geben wie man die Kostenstelle und eine Checkbox gleichzeitig an einen Bericht übergeben kann? Ausgabewert im Bericht ist "-1" und "0" - oder?


MzKlMu

Hallo,
so z.B.:
DoCmd.OpenReport "brUebersicht_alle", acViewPreview, , "Kostenstelle = 2331 And Checkbox = True"
True = -1, False = 0
Gruß Klaus