Neuigkeiten:

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

Mobiles Hauptmenü

PDF Datei per Code auf den Server einstellen

Begonnen von ben_brooke, April 24, 2025, 12:13:21

⏪ vorheriges - nächstes ⏩

ben_brooke

Moin,
Man ich habe in meiner DB die Möglichkeit programmiert per Button eine PDF Datei über ein E-Mail-Programm direkt als Anhang zu versenden.

Ich möchte jetzt die PDF per SQL Code an einen Server und dort in einen Ordner legen.

Kann mir jemand helfen wie der SQL Code auszusehen aht bzw. wo ich darüber Informationen bekommen kann.

Vielen Dank für die Hilfe.
 

Knobbi38

PDF per SQL-Code erzeugen? Ich wüßte nicht, daß das im SQL Standard vorgesehen ist. Warum kopierst du nicht einfach die PDF Datei in einen freigegebenen Ordner?

Gruß
Knobbi38


ben_brooke

Sorry, habe mich falsch ausgedrückt.
Ich erzeuge die PDF Datei und will sie dann per  Code automatisch mit Button in den Ordner auf den Server stellen.
Das kann man natürlich handisch machen aber ich möchte aus internen Gründen das per Button lösen

Knobbi38

Schon mal in der Sprachreferenz von VBA nachgesehen? Da gibt es eine Anweisung 'filecopy', was eigentlich selbsterklärend ist:

https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/filecopy-statement

Alternativ könnte man auch die Anweisung 'name' verwenden:
https://learn.microsoft.com/de-de/office/vba/language/reference/user-interface-help/name-statement

Bitsqueezer

Hallo,

wenn der Server ein SQL Server ist, kannst Du in der Datenbank FILESTREAM aktivieren. Dann kannst Du eine Tabelle erstellen/anpassen, die die PDF-Datei als Binärfeld entgegennimmt. Damit ist es dann auch möglich, beliebige Dateien per SQL auf den Server zu stellen.

Da man FILESTREAM so einstellen kann, daß zur Speicherung Windows-Ordner verwendet werden, die man auch so einstellen kann, daß sie per Dateifreigabe (zum Lesen) erreichbar sind, hättest Du dann die Anforderung erfüllt, die Datei rein per SQL in einen Windows-Ordner auf dem Server zu kopieren.

Die Tabelle wird dabei nicht belastet, damit auch nicht die Datenbank, da die Datei selbst nur auf dem Dateisystem gespeichert wird und nur ein Link dazu in der Tabelle.

Je nachdem, wie Du es haben willst, kannst Du die Windows-Ordner auch für den normalen Dateizugriff vollständig unsichtbar schalten, dann können die Dateien nur vom SQL Server gelesen/geschrieben werden, also zum Beispiel nur per SSMS oder Deiner Frontend-Anwendung.

Zu beachten ist, wenn man einen SELECT auf so eine Tabelle macht, sollte man das Binärfeld ausschließen, da sonst alle Dateien geladen werden, das Ergebnis wird sehr langsam sein. Das Binärfeld liest man dann nur ein, wenn man eine einzelne Datei holen will.
Mit ADO gibt es entsprechende Möglichkeiten, eine Datei in so ein Feld zu speichern bzw. auszulesen.

Gruß

Christian

ben_brooke

Moin,
erst einmal vielen Dank für die Hilfe aber ich habe mich wohl noch immer nicht klar ausgedrückt.
Ich kenne mich mit der Thematik von Servern nicht aus daher hier meine Frage bzw. mein Wunsch.
Ich erstelle in der Datenbank ein PDF Datei.
Diese Datei möchte ich jetzt per Button zum Server senden und dort in einen Ordner ablegen.

Also muss ich doch mit DoCmd.Openreport und Docmd.SendObject acSendReport jetzt den Befehl geben damit es zum Server und Ordner und Passwort geleitet wird, wie Https etc. festlegen oder habe ich da ein Denkfehler.

Tut mir leid wenn ich es nicht richtig formuliert habe

Bitsqueezer

Hallo,

vielleicht solltest Du mal beginnen, die Architektur zu erklären. Was für ein DB-Server? Was für ein Fileserver?
Und was hat Https mit "Dateien auf dem Server ablegen" zu tun? Usw.

Klingt alles sehr verworren.

Gruß

Christian

Knobbi38

Hallo,

also du musst schon genau beschreiben, was du machen möchtest. Mit DoCmd.Sendobject z.B. versendest du ein Objekt per Mail, was du aber so nicht machen möchtest, oder?

Der einfachste Weg ist, deine Datei lokal anzulegen, wie du das mit deinen PDF Anlagen für deine Mails auch machst. Dann kannst du diese PDF-Datei auf die Freigabe kopieren oder verschieben und ggf. anschließend die temporäre Datei wieder löschen. Mit https hat das nichts zu tun, daß wäre ein ganz andere Sachverhalt mit anderen Rahmenbedingungen.

Gruß Knobbi38


ben_brooke

Moin,
ja ich glaube ich meine die anderen Sachverhalte.
Das mit den Beispiel habe ich nur genutzt um mich vielleicht verständlich zu machen, hat aber nicht geklappt.

Ich möchte aus ACCESS einen Server aufrufen, dort auf einen Ordner zugreifen und dann mein Objekt dort ablegen.

Mal sehe ob ich es jetzt mit meinen kleinen Wissen richtig beschrieben habe.



Knobbi38

Zitat... aus ACCESS einen Server aufrufen

Aus Access kann man keinen Server "aufrufen"!

Nochmal zum Mitschreiben: du kopierst/verschiebst eine vorhandene PDF Datei von ... nach.

In der Eingabeaufforderung kannst du das ausprobieren (hier mal mit UNC Angaben):
copy quelldateiname \\servername\serverordner\zieldateiname
Bei dem Link aus #3 findest du ein passendes Beispiel für VBA.

ben_brooke

Moin, danke ich werde das einmal ausprobieren
Zur Nor komme ich noch einmal auf das Thema zurück. Ich muss jetzt erst den Server einrichten etc.