Reportabfrage mit Publicvariable statt Formularfeld (Access)

Neuling001, Montag, 25.03.2019, 18:05 (vor 26 Tagen)

Ich bitte um die Forumfamilie um Hilfe:
Ich habe einen Bericht erstellt, der mittels Formularfeld [Formular].[Tabelle].[....]
einen bestimmten DS anzeigt.
Nun möchte ich den Bericht aus einem anderen Formular ebenfalls aufrufen. Hier scheitert mein Unterfangen. Ich habe in Modul1 eine Publicvariable erstellt die nun aus den Formularen die Bedingung übernimmt und den Bericht ausgibt - es funktioniert leider nicht, da die Var in den Kriterien der Abfrage zu finden sind.
Wie kann ich nun aus verschiedenen Formulare auf den selben Bericht zugreifen?

Ich hoffe ich habe mein Problem einigermaßen verständlich beschrieben

DANKE

Reportabfrage mit Publicvariable statt Formularfeld

Martin Asal @, Dienstag, 26.03.2019, 11:47 (vor 25 Tagen) @ Neuling001

Hallo Neuling,

dafür brauchst du keine Variable, sondern einfach nur folgenden Code:

 
DoCmd.OpenReport "MeinBericht", acViewNormal, "ID=" & Me.ID

Hier wird davoon ausgegangen, dass sowohl der Bericht als auch deine Formulare jeweils ein Feld "ID" haben und der Code sich jeweils in den Formularen befindet (deswegen "Me").

Martin

Reportabfrage mit Publicvariable statt Formularfeld

Neuling001 @, Mittwoch, 27.03.2019, 15:08 (vor 24 Tagen) @ Martin Asal

Vielen Dank für den Tipp.
Ich muß folgendes ergänzen:
Der Bericht wird aus 2 verknüpften Tabellen [Personal] und [Meldung] erstellt.
Nachdem nun eine Meldung erfasst und gesichert wird, soll direkt aus dem Meldungsformular diese sofort ausgedruckt werden.
Dazu verwende ich die Schlüssel meID [Meldung]und den Fremdschlüssel persIDRef [-> Personal].

2 Fragen:

1. Wie übergebe ich nun die beiden Kriterien an die Funktion

DoCmd.OpenReport "rptBericht", acViewReport, "ID =" & Me.meID .......(?)

2. Bezieht sich der Text "ID ="auf einen Feldnamen, -bezeichner oder kann ich einen Namen "erfinden"

Danke für Deine Unterstützung!

Reportabfrage mit Publicvariable statt Formularfeld

Martin Asal @, Mittwoch, 27.03.2019, 15:47 (vor 24 Tagen) @ Neuling001

Bezieht sich der Text "ID ="auf einen Feldnamen, -bezeichner oder kann ich einen Namen "erfinden"

"ID" it auf jeden Fall ein Bezeichner aus deiner zugrundeliegenden Tabelle/Abfrage. Ich habe "ID" auch nur als Beispiel genommen.

Wie übergebe ich nun die beiden Kriterien an die Funktion

DoCmd.OpenReport "rptBericht", acViewReport, "ID =" & Me.meID .......(?)

Alles, was nach dem letzten Komma in dieser Zeile kommt, ist ein Filter für "rptBericht". DoCmd.OpenReport öffnet normalerweise den Report und zeigt alle Datensätze an, aber mit dem Filter kannst du angeben, dass nur bestimmte Daten angezeigt werden. Tipp: erstelle eine Abfrage, die genau die gewünschten Daten anzeigt, und schaue dir dann die Abfrage in der SQL-Ansicht an. Das, was nach WHERE kommt, ist das, was du hier angeben musst. In deinem Fall sind das zwei Bedinungen, die mit AND verknüpft sind.

Martin

Reportabfrage mit Publicvariable statt Formularfeld

Neuling001, Mittwoch, 27.03.2019, 21:35 (vor 24 Tagen) @ Martin Asal

Martin ich muß Dich nochmal um Hilfe bitten:
Folgende VBA-Zeilen

Private Sub btnPrint_Click()
'Report anzeigen
DoCmd.OpenReport "rptTestPersonBericht", acViewNormal, "meID=" & Me.meID And "meBewohnerIDRef=" & Me.meBewohnerIDRef
End Sub
(das Präfix me kennzeichnet meine Meldungtabelle)
erzeugt den Laufzeitfehler 13 Typen unverträglich!

Was mach' ich falsch?????

Reportabfrage mit Publicvariable statt Formularfeld

Martin Asal @, Donnerstag, 28.03.2019, 09:25 (vor 23 Tagen) @ Neuling001

Das kann nicht funktionieren. Beim Erstellen eines Strings musst du dir schon klarmachen, was ein fester String und was Variable ist.

"meID=" & Me.meID & " And meBewohnerIDRef=" & Me.meBewohnerIDRef

Martin

Reportabfrage mit Publicvariable statt Formularfeld

Neuling001, Donnerstag, 28.03.2019, 17:31 (vor 23 Tagen) @ Martin Asal

Martin DANKE!!!!

RSS-Feed dieser Diskussion
powered by my little forum