Access-o-Mania

Access-Forum (Deutsch/German) => Bericht => Thema gestartet von: pahiti78 am Juli 31, 2014, 18:45:09

Titel: Berichtsname
Beitrag von: pahiti78 am Juli 31, 2014, 18:45:09
Hallo,

hat jemand ne Idee, wie man den Namen eines Berichtes in VBA rausbekommt.
Für die Formulare macht man dies ja me.FormName, aber wie geht es bei einem Bericht?
Titel: Re: Berichtsname
Beitrag von: MzKlMu am Juli 31, 2014, 19:01:36
Hallo,
Me.Name liefert den Namen eines Berichts und den Namen eines Formulars.
Me.FormName funktioniert natürlich auch.
Das ist übrigens auch der Grund, warum Name als Feldname absolut tabu ist.
Titel: Re: Berichtsname
Beitrag von: pahiti78 am Juli 31, 2014, 19:13:31
Hallo,
vielen Dank...aber mit dem Bericht öffnet sich bei mir automatisch ein Formular mit diversen Buttons. Ein Button soll den ausgewählten bzw. offenen Bericht in PDF exportieren. Dafür benötigt dieser den Berichtsname. Wenn ich jetzt auf den Button drücke, liefert er mir den Namen des Formulars, logisch :)
Also müsste ich beim Aufruf des Berichtes den Namen auslesen und speichern.
Ich könnte zwar für jeden Bericht ein Extraformular erstellen und dem Button dann den Berichtsname zuweisen, aber ich hoffe es geht einfacher.

Ich dachte daran den Namen des Berichtes zu speichern, muss dann aber wahrscheinlich die Variable öffentlich machen oder?
Sollte ich so eine Variable dann in einem Extramodul integrieren?
Wird die Variable überschrieben, sobald ich einen anderen Bericht öffne und den Berichtsnamen der Variable zuweise?
Titel: Re: Berichtsname
Beitrag von: MzKlMu am Juli 31, 2014, 19:17:56
Hallo,
im Button zum Drucken hast Du doch den Berichtsnamen, den kannst Du doch direkt als Name für den PDF Druck verwenden. Wo ist das Problem?
Titel: Re: Berichtsname
Beitrag von: pahiti78 am Juli 31, 2014, 19:27:45
Hallo,
klar geht es so.
Aber bei jedem Berichtsaufruf (unterschiedliche Berichte) soll immer das selbe PopUp Formular aufgrufen werden. Dann hat man die Möglichkeit im Formular zu wählen, ob man den Bericht druckt oder diesen als PDF speichert. Zum Speichern benötigt man den Namen des Berichtes. Die Funktion me.Name liefert dann allerings nur noch den Namen des PopUp-Formulares.

In diesem Formular könnte ich zwar dann den Namen des Berichtes unterbringen, aber ich möchte, dass das Formular bei allen unterschiedlichen Berichten mitaufgerufen wird. Dann müsste ich zu jedem Bericht ein eigenes PopUp_formular erstellen.

Könnte ich machen, aber ich hoffe es geht einfaches. Ich bräuchte lediglich eine Funktion, welche mir den Namen des gerade offenen Berichtes liefert..... Oder das PopUpFormular müsste beim Öffnen irgendwie den Namen des Berichtes speichern.
Titel: Re: Berichtsname
Beitrag von: MzKlMu am Juli 31, 2014, 19:32:50
Hallo,
wie wird denn der PDF Druck angestoßen, bzw. wie sieht der Code aus zum Drucken des PDF?
Titel: Re: Berichtsname
Beitrag von: pahiti78 am Juli 31, 2014, 19:53:02
Hallo,
es funktioniert..... 8)
ich habe beim Öffnen des Berichtes den Berichtsnamen dem PopUP Formular übergeben. Dazu hab ich ein ungebundenes Textfeld "txtBerichtsname" integriert, welches den BerichtsNamensWert aus dem Formular, welches den Bericht öffnet speichert. Dann habe ich den Verweis in den PDFButton integriert. Anbei der Code für das Formular, welches den Bericht öffnet. Dieses erzeugt den Bericht und das PopUp-Formular. Dieses PopUP-Formular hat dann das Textfeld txtBerichtsname und speichert diesen Wert.
Private Sub btnTelefonbuch_Click()
DoCmd.OpenReport Reportname:="rpt_Kunden_Stammdaten_telefonbuch", view:=acViewPreview, wherecondition:=KundenNummer
strwherecondition = wherecondition
DoCmd.OpenForm "frm_Kunden_Daten_Uebergeben"
Forms!frm_Kunden_Daten_Uebergeben.txtBerichtsname = "rpt_Kunden_Stammdaten_telefonbuch"
Forms!frm_Kunden_Daten_Uebergeben.txtWherecondition = strwherecondition
End Sub


Und der Button im PupUp-Formular, welches das PDF druckt.
Private Sub btnPDF_Click()
On Error Resume Next
DoCmd.OutputTo acOutputReport, Me.txtBerichtsname, acFormatPDF
End Sub


Wahrscheinlich nicht die eleganteste Lösung, aber ich brauche nur ein PopUP-Formular für ca. 20 verschiedene Berichte.... :) ;)