Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
interaktives PDF aus Access befüllen
zurück: Anlegen eines Popupfensters bei einer Fehlermeldung von VBA weiter: Passwort und Benutzerabfrage - Berechtigungen vergeben Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
NathalieP
Gast


Verfasst am:
26. Nov 2013, 16:49
Rufname:

interaktives PDF aus Access befüllen - interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Hallo zäme.
Ich arbeite im Personaldienst und habe immer eine Menge Dokumente mit den gleichen Angaben auszufüllen. Meine Docs in Word und Excel habe ich jetzt mit einem relativ einfachen vbacode automatisiert. Ich gebe die Infos in Access ein und befülle die "Bookmarks" der Dokumente. Nun sind da aber auch noch eine Menge interaktive PDFs auszufüllen. Kann ich die auch "automatisieren" und wenn ja, wie?
TomKelly
VBA-Freak


Verfasst am:
27. Nov 2013, 00:30
Rufname:


AW: interaktives PDF aus Access befüllen - AW: interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Hallo Nathalie

Damit habe ich bis jetzt auch noch keine Erfahrung, aber trotzdem drei Lösungsansätze die ich versuchen würde:
  1. Weshalb ein interaktives PDF ausfüllen, und nicht ab Access jeweils ein neues PDF erstellen? In einem ersten Schritt würde ich versuchen den Inhalt des PDF's in einen Bericht zu bringen, welchen Du dann wie gewohnt befüllen kannst und als PDF speichern.
  2. Vielleicht gibt es auf dem Netz eine Software, welche Schnittstellen zum Ausfüllen von interaktiven PDF's zur Verfügung stellt. Eine oder zwei Stunden in eine Suchmaschine investieren könnte sich lohnen. (Über einen entsprechenden Tipp wäre ich evtl. auch mal froh:-))
  3. Wenn das nicht geht (z.B. weil Du nur einen Teil der Daten einfüllen musst, und nach Dir andere Benutzer weiter mit dem interaktiven PDF arbeiten müssen) fällt mir auf Anhieb nur eine Lösung über den SendKey-Befehl ein. Sofern Du das PDF manuell zu 100% über die Tastatur (= ohne Maus, was zugegebenermassen immer schwieriger wird) bedienen kannst, kannst Du diese Bedienung auch Access überlassen. Das ist der Weg den ich öfter einschlage, sobald ich völlig fremde Programme ab Access steuern will. Falls Du das versuchen willst und noch keine Erfahrung hast, hätte ich da sicher die eine oder andere Einstiegshilfe, einfach melden.
Gruss
TomKelly
NathalieP
Gast


Verfasst am:
03. Dez 2013, 16:49
Rufname:

AW: interaktives PDF aus Access befüllen - AW: interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Hallo Tom
Vielen Dank für deine Antwort. Leider ist es wirklich so, dass ich nur einen Teil ausfülle. Der Rest geht dann zurück an den Verfasser des Formulars, der leider auch nicht gewillt ist, von der Form des interaktiven PDFs abzuweichen... Also, wie geht das nun mit dem sendkey?
Vielen Dank.
Lieber Gruss
Gast



Verfasst am:
05. Dez 2013, 01:46
Rufname:

AW: interaktives PDF aus Access befüllen - AW: interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Hallo Nathalie

SendKeys ist ein Standard-VBA-Befehl, der nichts anderes macht als das Drücken einer/mehrerer Tasten auszulösen.
Es ist also Aufgabe des Programmes / VBA sicherzustellen, dass die Tastendrücke auch dort ankommen wo sie hin sollen.
Dazu etwas Code für ein globales Modul:

Code:
Option Compare Database
Option Explicit

Declare Function GetForegroundWindow Lib "user32.dll" () As Long
Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hWnd&, ByVal sTitel$, ByVal lTitLen&) As Long
Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliSec As Long)

Public Function GetActiveWindowTitle() As String
    ' Diese Funktion ermittelt den Titel des aktiven Fensters. Das ist mE auch wichtig um Fehlermeldungen zu erkennen und entsprechend darauf reagieren zu können.
    Dim lhWnd As Long, s As String, l As Long
    lhWnd = GetForegroundWindow
    s = String(255, 32)
    l = GetWindowText(lhWnd, s, 255)
    If l > 0 Then s = Left$(s, l)
    GetActiveWindowTitle = s
End Function


Den Rest kannst Du z.B. abhängig von einem Tastendruck im Modul des Formulars machen. Die Befehle die hier verwendet werden, kannst Du in der Hilfe nachschlagen!

Code:
Sub Ausfuellen_Click()
    Dim dt as Date
    FollowHyperlink "C:\DeinFormular.pdf" ' Öffnet das auszufüllende Formular
    Sleep 5000 ' Wartet 5 Sekunden um Adobe etwas Zeit zu geben (kann optimiert werden)
    dt = Now
    While Left(GetActiveWindowTitle(), 16) <> "DeinFormular.pdf"
        If DateDiff("s", dt, now) > 60 Then Exit Sub ' Nach einer Minute Formular noch immer nicht gefunden --> Abbruch
        Sleep 1000 ' Formular noch nicht vorhanden, noch eine Sekunde warten
    Wend
    ' Jetzt müsste eigentlich das Formular ansprechbar sein, also beginnen wir es auszufüllen
    SendKeys "{TAB}" & [Vorname], True ' Füllt im zweiten Formularfeld den Wert ein, der im Access-Formular im Feld [Vorname] steht
    SendKeys "{TAB}" & [Name], True ' Füllt im nächsten Formularfeld den Wert ein, der im Access-Formular im Feld [Name] steht
    SendKeys "{TAB}" & [Strasse], True ' Füllt im nächsten Formularfeld den Wert ein, der im Access-Formular im Feld [Strasse] steht
    ' usw, alle gewünschten Daten eintragen (Ja/Nein Felder mit Haken versehen geht mit Leerschlag)

    ' Nun noch Speichern:
    SendKeys "+^s", True    ' Umschalt + Strg + s --> Speichern als
    Sleep 1000
    SendKeys "C:\Ausgefüllte Formulare\DeinFormular_" & [Name] & "_" & [Vorname] & ".pdf{ENTER}", True ' Speichert das Formular an einer anderen Stelle, mit erweitertem Dateinamen ab
    While Left(GetActiveWindowTitle(), 16) <> "DeinFormular.pdf"
        If DateDiff("s", dt, now) > 60 Then Exit Sub ' Nach einer Minute Formular noch immer nicht gefunden --> Abbruch
        Sleep 1000 ' Formular noch nicht vorhanden, noch eine Sekunde warten
    Wend
    SendKeys "%{F4}", True    ' Alt + F4 Adobe Reader schliessen
End Sub


Ich hoffe, damit findest Du einen Einstieg. Bei konkreten weiteren Fragen einfach melden. Es gibt im Umfeld zu dieser Aufgabe eine Menge Detailprobleme und Lösungen, aber das führt zu weit alles jetzt hier auf einmal erschlagen zu wollen.
Ein Hinweis noch zum Schluss: Wenn ein bestimmtes Fenster offen, aber nicht im Vordergrund ist, kann es mit dem VBA-Befehl Application.AppActivate aktiviert werden. (Siehe Hilfe)

Gruss
TomKelly
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
05. Dez 2013, 14:46
Rufname:
Wohnort: Goslar

AW: interaktives PDF aus Access befüllen - AW: interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Also die Variante mit Sendkeys ist sehr...ähm...rustikal - das sollte man wirklich vermeiden.

Der einfachste Weg zum Befüllen von PDF-Formularen ist via FDF-Datei - das ist eine Datendatei, die man z.B. mit Acrobat Professional zu einem Formular erstellen kann.

Wenn man eine PDF-Vorlage mit Platzhaltern ausfüllt und die Daten als FDF-Datei exportiert, kann man diese FDF-Datei mit VBA öffnen, die Platzhalter durch die gewünschten Werte ersetzen und diese dann wieder mit der Vorlage zusammenführen - das geschieht einfach durch Aufrufen der FDF-Datei mit dem Acrobat Reader, der öffnet dann die zugehörige Vorlage und trägt die Daten ein.

_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
TomKelly
VBA-Freak


Verfasst am:
05. Dez 2013, 17:23
Rufname:

AW: interaktives PDF aus Access befüllen - AW: interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Hallo,

Das mit rustikal ist korrekt.
Ich ging von der Annahme aus, dass kein Adobe Professional vorhanden ist, war vielleicht falsch?
Abgesehen davon: Der rustikale Weg funktioniert halt mit jeder Software, solange keine Maus benötigt wird...

Gruss
TomKelly
NathalieP
Gast


Verfasst am:
05. Dez 2013, 22:58
Rufname:

AW: interaktives PDF aus Access befüllen - AW: interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Hallo zusammen.
Vielen Dank euch beiden für eure Hilfe.
Ok, da muss ich morgen mal unsere Informatiker fragen, ob jemand im Haus die notwendige Adobe Professional Version hat, um ein FDF zu erstellen... Das wäre dann ja vielleicht die einfachere Lösung, wenn ich es richtig verstanden habe. Ich habe nur den Reader... Halte euch auf dem Laufenden. Gruss NathalieP
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
06. Dez 2013, 13:33
Rufname:
Wohnort: Goslar


AW: interaktives PDF aus Access befüllen - AW: interaktives PDF aus Access befüllen

Nach oben
       Version: Office 2010

Ich würde mich da an den Verfasser des Formulars wenden - der sollte ja Acrobat Pro haben.
_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: leere Felder befüllen 3 noah16 77 06. Feb 2013, 16:58
JMalberg leere Felder befüllen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellen über Excel-Sheet Import befüllen 4 Markus90 392 16. Mai 2012, 13:19
Gast Tabellen über Excel-Sheet Import befüllen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle mit UPDATE-Befehl befüllen. 6 Flo(Gast) 189 07. Apr 2011, 10:29
Flo(Gast) Tabelle mit UPDATE-Befehl befüllen.
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage als PDF ausgeben 5 vitus001 592 05. Jan 2011, 10:33
vitus001 Abfrage als PDF ausgeben
Keine neuen Beiträge Access Tabellen & Abfragen: Einfügen von PDF Links 1 Philly-z 1223 03. Sep 2009, 10:59
ebs17 Einfügen von PDF Links
Keine neuen Beiträge Access Tabellen & Abfragen: Formularfeld mit Ergebnis aus Abfrage befüllen 1 Holzer2202 194 15. Aug 2009, 21:55
Bitsqueezer Formularfeld mit Ergebnis aus Abfrage befüllen
Keine neuen Beiträge Access Formulare: PDF zum dazugehörenden Datensatz öffnen 6 losmacher 1719 23. Sep 2008, 16:05
Willi Wipp PDF zum dazugehörenden Datensatz öffnen
Keine neuen Beiträge Access Formulare: PDF OLE Elemt. Fehler beim Schliessen des Adobe Reader 0 Supergast 2308 22. Sep 2008, 13:18
Supergast PDF OLE Elemt. Fehler beim Schliessen des Adobe Reader
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage zum Befüllen freigeben 9 Beatrix 291 16. Sep 2008, 22:21
Willi Wipp Abfrage zum Befüllen freigeben
Keine neuen Beiträge Access Formulare: Textfeld automatisch befüllen 8 Gast 305 31. Aug 2008, 10:34
Gast Textfeld automatisch befüllen
Keine neuen Beiträge Access Formulare: interaktives Diagramm möglich? 0 sonixxl 480 12. März 2008, 13:21
sonixxl interaktives Diagramm möglich?
Keine neuen Beiträge Access Formulare: Listenfeld nach Wunsch befüllen 0 ppride 301 27. Nov 2007, 18:21
ppride Listenfeld nach Wunsch befüllen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Access Tabellen