Neuigkeiten:

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

Mobiles Hauptmenü

Feldinhalt als Dateiname

Begonnen von carman0103, Januar 02, 2014, 18:23:25

⏪ vorheriges - nächstes ⏩

carman0103

Prost Neujahr,

das Jahr ist noch nicht so alt und ich muss Euch schon ne Frage stellen. Ist es möglich, den Inhalt eines Feldes als Dateiname zu verwenden? Zur näheren Erklärung: Ich habe in Meiner Datenbank über Autos einen Bericht erstellt mit dem Namen "Datenblatt". In diesem Bericht gibt es ein Feld das ich gerne als Dateiname verwenden möchte, wenn ich den Bericht als PDF speichere. Ist es möglich, dass dieser Feldinhalt automatisch als Dateiname übernommen wird?

Vielen Dank im Voraus für Eure Antworten.
Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät  Grinsend

MzKlMu

Hallo,
natürlich geht das, Du musst nur auch das Feld verweisen.
Zeige mal den Code zum Speichern des PDF.
Gruß Klaus

carman0103

Hallo,

Ich habe in einem Formular eine Schaltfläche, mit der ich folgenden Code auslöse:

Private Sub druckpdf_Click()
    Dim BerichtsName As String
    Dim Filter As String
   
    BerichtsName = "Datenblatt"
    Filter = "[Datensatz] = " & Me![Datensatz]
    DoCmd.OpenReport BerichtsName, acPreview, , Filter
    DoCmd.PrintOut acPrintAll
    DoCmd.Close acReport, BerichtsName
End Sub


Vielen Dank schon mal für Deine Unterstützung.
Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät  Grinsend

DF6GL

Hallo,

probier mal:


ZitatPrivate Sub druckpdf_Click()
    Dim BerichtsName As String
    Dim Filter As String
   
    BerichtsName = "Datenblatt"
    Filter = "[Datensatz] = " & Me![Datensatz]
    DoCmd.OpenReport BerichtsName, acPreview, , Filter
    Reports(BerichtsName).Caption = Me!Dateiname
    DoCmd.PrintOut acPrintAll
    DoCmd.Close acReport, BerichtsName
End Sub


database

Hallo,

Zitat von: MzKlMu am Januar 02, 2014, 18:27:21
... Zeige mal den Code zum Speichern des PDF.

Der Code, den du da reingestellt hast speichert aber nix, der öffnet einen Bericht zum Drucken, das hat mit einer Speicherung als PDF nichts am Hut.

carman0103

Hi,

seltsamerweise macht mir Access daraus immer ein PDF. Aber seit ich den Code so umgestellt habe, DF6GL vorgeschlagen hat, geht das nicht mehr...
Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät  Grinsend

database

Hallo,


[size=10pt]
Private Sub druckpdf_Click()
    Dim BerichtsName As String
    Dim Filter As String
   
    BerichtsName = "Datenblatt"
    Filter = "[Datensatz] = " & Me![Datensatz]
    DoCmd.OpenReport BerichtsName, acPreview, , Filter
    DoCmd.PrintOut acPrintAll
    DoCmd.Close acReport, BerichtsName
End Sub
[/size]


Tut leid, aber der Code öffnet einen Bericht mit gefilterten Daten - der Zusatz von Franz ändert die Beschriftung - druckt alle Datensätze und schließt danach den Bericht.
Von Speichern als PDF keine Spur  ::)

MzKlMu

Hallo,
Zitatseltsamerweise macht mir Access daraus immer ein PDF.
dann ist als Drucker eine PDF Drucker eingestellt, da ist nichts seltsam dran.
Welche Access Version verwendest Du ?
Gruß Klaus

carman0103

Als Standarddrucker ist NICHT der PDF-Drucker eingestellt. Ich verwende Access 2007.
Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät  Grinsend

database

Hallo,

nicht als Standarddrucker sondern für diesen Bericht

Allerdings nimmt der Druckertreiber doch standardmäßig den Dateinamen - in dem Fall den Berichtsnamen - in den Speichern unter - Dialog auf oder täusche ich mich da?

carman0103

Ja, der Berichtsname wird standardmäßig als Dateiname verwendet. Ich möchte aber den Inhalt eines bestimmten Feldes automatisch als Dateinamen verwenden.

Wie müsste ich den Code denn ändern, um eine PDF zu erzeugen. Ich verwende dazu das Programm Free PDF. Wie spreche ich das Programm im Code an und lasse es als Dateinamen den Feldinhalt von Feld xy verwenden?
Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät  Grinsend

database

#11
Hallo,

bei Access 2007 brauchst du keinen speziellen PDF-Drucker mehr, Access 2010 hat die Speicherung von Berichten in unterschiedlichen Ausgabeformaten bereits als Bordmittel mit bzw. für 2007 gibt's ein AddIn ...  hier zu beziehen:
http://www.microsoft.com/de-de/download/details.aspx?id=9943

schau mal in der OH unter 'DoCmd.OutputTo'
Bei Acc 2010 schaut das so aus, für 2007 müsste es ähnlich sein.
DoCmd.OutputTo(ObjectType, ObjectName, OutputFormat, OutputFile, AutoStart, TemplateFile, Encoding)

für OutputFormat müsste dann 'acFormatPDF' stehen und für OutputFile der gewünschte Dateiname, der auch in einer String-Variablen verpackt sein kann (glaube ich). 


MzKlMu

#12
Hallo,
ZitatWie spreche ich das Programm im Code an und lasse es als Dateinamen den Feldinhalt von Feld xy verwenden?
das hat doch Franz bereits geschrieben:
Reports(BerichtsName).Caption = Me!FeldXY 'Formularfeld mit Dateiname

Aber verwende den Vorschlag von Peter, daher auch meine Frage nach der Accessversion.

Gruß Klaus

database

Hallo,

wenn du oben erwähntes AddIn installiert hast, sollte es mit Acc2007 so laufen:



[size=10pt]Private Sub druckpdf_Click()
    Dim BerichtsName As String
    Dim Filter As String, Pfad As String, Dateiname As String
   
    Pfad = "C:\DeinVerzeichnis\"
    Dateiname = Pfad & Me!DeinTextfeldMitDateinamen & ".PDF"
    BerichtsName = "Datenblatt"
    Filter = "[Datensatz] = " & Me![Datensatz]
    DoCmd.OpenReport BerichtsName, acPreview, , Filter
    Reports(BerichtsName).Caption = Me!DeinTextfeldMitDateinamen
    [color=green]'Bericht ausdrucken
[/color]    DoCmd.PrintOut acPrintAll
    [color=green]'Bericht als PDF ablegen
[/color]    DoCmd.OutputTo acOutputReport, BerichtsName, "PDF", Dateiname
    DoCmd.Close acReport, BerichtsName
End Sub

[/size]


HTH

carman0103

Ich hab das Addin installiert und den Code auf deinen Vorschalg abgeändert. Access will aber immer noch den normalen Drucker ansprechen...
Wer andern eine Bratwurst brät, hat meist ein Bratwurstbratgerät  Grinsend