VBA Code in Access 2010 zur Aufruf einer Internetseite und automatischen Druck der Seite als PDF Datei

Mitglied: viking

viking (Level 1) - Jetzt verbinden

26.11.2011, aktualisiert 18.10.2012, 9961 Aufrufe, 7 Kommentare

Hallo,
eine Frage an die Access VBA Experten.

Ich habe eine Access 2010 Datenbank in welcher eine Tabelle mit dem Namen "Tabelle1" ist, die ein Feld mit dem Namen "Ebaylink" hat.
Der Fedlinhalt des Feldes "Ebaylink" ist der komplette Link zur Ebayauktion.

Nun suche ich nach einer Lösung die folgendes automatisch ausführt.

Mit der Betätigung eines Button auf einem Formular soll ein Browser aufgehen.
Zum Beispiel der InternetExplorer oder Firefox.
Soweit bin ich schon mit Marko, ..., aber dann auch schon am Ende.

Was ich nun nicht lösen kann ist, dass automatisiert der Befehl ausgeführt wird, dass die geöffnete Seite nun direkt als PDF in dem Pfad
C:\Auktionen\ gespeichert wird und am besten gleich das Browserfenster wieder geschlossen wird.

Das was ich nun im Beispiel des InternetExplorers in Zusammenhang mit dem PDFCreator ausführen muss, ist die Auswahl:
Datei\Drucken\Druckerauswahl\Drucken\Speichern.

Da der PDFCreator nicht mein Standarddrucker ist wollte ich diesen für diese Aktion fest als Standard definieren.
Der Pfad wohin gedruckt wird soll auch fest sein. "C:\Auktionen\"
Der Name der PDF Datei ist bei mir der ausgewählte EBAY-Link, was so ok, bzw. gewollt ist.

Kann man das mit VBA Code und wenn ja wie lösen.

VBA Code ist noch nicht meine Stärke, da ich bisher immer mit Makros in Access gearbeitet habe.

Wichtig für mich auch, welche Verweise oder Libarys benötige ich in welcher Reihenfolge.
Ich nutze Win7 64bit und Office 2010 32bit. PDFCreator 1.2.3

Hat jemand dafür eine Lösung, bzw einen Ansatz wie ich diese Szenario bestmöglich lösen kann.

Gruß viking
Mitglied: 76109
76109 (Level 3)
27.11.2011, aktualisiert 18.10.2012
Hallo viking!

Hier mal ein Code, der per PDFCreater eine Website in eine PDF-Datei druckt. Als Dateiname wird die Url verwendet, wobei nichterlaubte Zeichen in einen Unterstrich umgewandelt werden. Der aktuelle Standard-Drucker wird zu Begin gesichert und am Ende wieder als Standard-Drucker gesetzt.
Gruß Dieter
Bitte warten ..
Mitglied: NetWolf
27.11.2011 um 17:55 Uhr
Moin Moin,

so da sind wir wieder :-) face-smile

eine kleine Vorbereitung, damit es funktioniert:
- Formular in der Entwurfsansicht öffnen
- im Ribbon auf den Tab [Entwurf]
- ActiveX Steuerelement anklicken
- "Microsoft Webbrowser" wählen

es wird ein Fenster auf deinem Formular erstellt, das einen Webbrower simuliert. Die Bezeichnung ist i.d.R. Webbrowser0

Mit der Betätigung eines Button auf einem Formular soll ein Browser aufgehen.
tja, wenn ich nun wüsste wie die Bezeichnung des Buttons wäre :-( face-sad
Ich nehme mal MyButton für mein Beispiel.

Also als Ereignis bei deinem Button eingeben (oder von hier kopieren):

Private Sub MyButton_Click()
Dim OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, WebSeite

OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2

WebSeite = Me.MyAuswahl ' keine Ahnung wie das Feld deiner Auswahl heißt :-( face-sad

With WebBrowser0
.Navigate WebSeite

Do While .Busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop

.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER

End With

End Sub

Damit wird die Webseite deiner Wahl geöffnet und ohne Frage an den Standarddrucker ausgegeben.

Falls dein PDF-Printer nicht gleich speichert, könnte man noch mit Sendkeys entsprechende Tastendrücke simulieren (allerdings nicht im unsichtbaren Modus)

Grüße aus Rostock
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: viking
27.11.2011 um 21:24 Uhr
Hallo Dieter,

zunächst mal Danke für Deine Code.
Nun bin ich noch ein richtiger Blindgänger was das VBA betriftt, wie man diesen einbindet und habe da noch 2-3 Anfängerprobleme.
Bin gerdade am Testen Deines Vorschlags.

Erste dumme Frage:
Wenn ich einen Button oder einem Formularfeld eine Code zuweisen will, dann steht am Anfang immer so was wie

Private Sub Befehl1_Click()

End Sub

Wie kriege ich es gebacken dass ich Deinen Code in ein Formular auf einen Button einbinden.
Mein Button hätte den Namen "Befehl1"

Momentan habe ich wenn ich Deine Code bei mir reinkopiere 3 Abschnitte
Zeile 01
Zeile 12
Zeile 17

zweite Frage, wie schaffe ich es dass, ich den Link selbst aus einem Feld beziehe.
Du hast diesen wenn ich es richtig interpretiere in Zeile 13 fest vorgegeben.
Ich habe es so, dass dieser aus einem Feld einer Datenbanktabelle "Tabelle1" kommt. Das Feld selbst hat den Namen "Ebaylink" und diese habe ich im Formular auch verfügbar.
Ich weiß dass das keine tolle Vergabe von Tabellennamen und Tabellenfeldern ist, aber so hab ich halt vorleigen.

Gruß viking
Bitte warten ..
Mitglied: viking
27.11.2011 um 22:51 Uhr
Hallo Wolfgang,

ja, da bin ich schon wieder, ...

Deinen Code habe ich probiert, ...,
den WebBrowser habe ich bei mir auf 9 Stellen müssen anstelle 0.

Dann hats mir die Seite auch gleich auf meinen normalen Drucker raus.

Nach Umstellung des PDF Creator als Standard habe ich den PDF Creator geöffnet bekommen.

Dort habe ich nun automatisches speichern und die Einstellungen vorgenommen, dann tut das auch.

Er speichert nun wie er soll ohne zu fragen auf C:\Auktionen\ rein. Spitze!

Die Variante mit dem automatischen Speichern ist aber nicht so schön, dass er dies nun immer macht und da ich ab und an auch andere Dokumente mit dem PDFCreator drucken will ist das für die Dokumente schlecht.

Könnte man da noch was von Dieter aufnehmen?

Gruß und Danke !!!!

viking
Bitte warten ..
Mitglied: NetWolf
28.11.2011 um 12:16 Uhr
Moin Moin,

da hat sich Dieter mehr Mühe gemacht als ich. Der Code ist natürlich viel besser als meiner, da er den PDFCreator gleich mit steuert.

Wenn ich einen Button oder einem Formularfeld eine Code zuweisen will, dann steht am Anfang immer so was wie
Das ist richtig, das ist der "Rahmen" für das Ereignis des Buttons.
In diesen Rahmen kommt der Aufruf für die SUB Prozedur/Funktion die aufgerufen werden soll. Mit der SUB Test hat Dieter den Aufruf demonstriert.

Da dein Formularfeld Ebaylink heißt, wäre dann folgendes zu tun:

1. Kopiere den Code von Dieter komplett VOR den automatisch erzeugten Rahmen deines Buttons. Da vermutlich "Option Explicit" schon bei dir drinsteht, kannst du diese Zeile auslassen beim Kopieren.

2. den "Rahmen" füllst du wie folgt (ME. ist die Variable/Platzhalter für das aktuell genutzte Formular):

Private Sub Befehl1_Click()
Call PrintToPdfCreater(ME.Ebaylink)
End Sub

3. Fertig


Grüße aus Rostock
Wolfgang
(Netwolf)
Bitte warten ..
Mitglied: viking
28.11.2011 um 14:39 Uhr
Hallo Wolfgang,

habs nun eingebunden, klappt wunderbar!

Danke für die Hilfe, auch Dir Dieter für Dein umfangreiches Script.

Gruß viking
Bitte warten ..
Mitglied: Winzling
22.11.2015 um 18:25 Uhr
Hallo Netwolf,
die Funktion könnte ich gut gebrauchen. Allerdings will ich auf der Internetseite eine Abfrage starten, deren Ergebnis dann als PDF in ein bestimmtes Verezichnis gedruckt werden soll. Ich möchte die Empfangsbestätigung von unterschiedlichen Paketdienstleistern dokumentieren. Gibt es dafür auch eine Lösung?
Viele Grüße aus Westfalen
Bitte warten ..
Heiß diskutierte Inhalte
HTML
Ich brauche dringend Hilfe !
gelöst JulianpustVor 1 TagFrageHTML19 Kommentare

Hallo erstmal, ich habe großen Mist gebaut in der Firma wo ich gerade mal 2 Tage arbeite. Was ist passiert: Ich sollte von Gmail ...

LAN, WAN, Wireless
8 Geräte - verteilen oder auf einen Switch?
DoKi468Vor 1 TagFrageLAN, WAN, Wireless12 Kommentare

Hallo liebe Admins, eine kurze Frage: Ich habe hier eine FB 6190 Cable stehen sowie einen noch unmonitored switch mit 8 Anschlüssen. Momentan sieht ...

Windows Server
Server-Internetverbindung kurz trennen und wieder aktivieren
gelöst imebroVor 1 TagFrageWindows Server13 Kommentare

Hallo, wir haben im Moment fast täglich immer wieder Ausfälle unserer Internetverbindung. Unser Provider sagt, dass er kein Problem feststellen kann. Aber wenn vom ...

Netzwerke
Hardware-Firewall - NGFW - UTM für Privatgebrauch
LordVoodooVor 1 TagFrageNetzwerke7 Kommentare

Hallo liebe Community, seit mehreren Wochen beschäftige ich mich nun schon mit dem Thema Hardware-Firewall, ausgelöst durch Begriffe wie UTM / NGFW / Layer-7-DPI. ...

LAN, WAN, Wireless
"Ethernet verfügt über keine gültige IP-Konfiguration"
gelöst archITVor 12 StundenFrageLAN, WAN, Wireless18 Kommentare

Moin, folgendes Problem: Jedes mal, wenn ich meinen PC an mache, muss ich die Problembehandlung auf der Ethernet schnittstelle ausführen, dass ich Internet habe. ...

Hardware
Kabelfernsehen in anderen Raum "übertragen" ?
cramtroniVor 1 TagFrageHardware6 Kommentare

Guten Tag zusammen, ich hätte eine Frage und zwar gibt es in unserem Haus nur einen Kabelanschluss (Coax) für das Kabelfernsehen, nun hätte ich ...

Switche und Hubs
Ist bei einem kleinen Switch Rackmount Kit dabei?
CubeHDVor 1 TagFrageSwitche und Hubs5 Kommentare

Hallo, ich möchte den "HPE OfficeConnect 1420 16G Switch" kaufen. Der Switch hat 16 Ports und ich möchte diesen in einen Standard 19 Zoll ...

Microsoft
PDF editor mit spezieller exportfunktion
FlorianHeVor 11 StundenFrageMicrosoft9 Kommentare

Hi leute. Ich habe eine Frage. Bei uns in der Instandhaltung kommt es oft vor das wir änderungen an den Elektrischen Anlagen oder Mechanichen ...