Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Ken am Juni 30, 2017, 15:11:15

Titel: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juni 30, 2017, 15:11:15
Hallo,

ich habe alles ausprobiert, aber nichts hat geholfen. Mein Problem, ich öffne über Access ein PDF, nur leider verliert das PDF den Focus.

Function pdf_öffnen()
Dim strPfad As String
Dim strDok As String

strPfad = "C:\Daten"
strDok = strPfad & "\" & "_1005176201_4500160101_MAAD.pdf"
Application.FollowHyperlink strDok, , True, True
Application.FollowHyperlink strDok, SetFocus

DoCmd.RunCommand acCmdCopy 'Hier kopiert er mir ein Textfeld aus meiner Form statt das PDF-File.

End Function

Hat jemand eine Idee wie ich den Focus auf das PDF bekomme?

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Lachtaube am Juni 30, 2017, 15:37:27
Verwende alternativ VBA Tipp: Anwendung mit ShellExecute starten (https://dbwiki.net/wiki/VBA_Tipp:_Anwendung_mit_ShellExecute_starten) und setze lpParameters entsprechend Deiner Anforderung.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juni 30, 2017, 15:57:54
Hallo Lachtaube,

Danke für den Link. Habe Parameter ausprobiert, aber der Focus bleibt auf Access.

Trotzdem vielen Dank!

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Lachtaube am Juni 30, 2017, 16:05:17
Zeige bitte die Anweisung des Versuchs und teile auch mit, welches Anzeige-Programm denn gestartet wird.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juni 30, 2017, 16:14:11
Sub Versuch()
Call ShellExecute(0, "open", "C:\Daten\_1005176201_4500160101_MAAD.pdf", "", "", SW_MAXIMIZE)
DoCmd.RunCommand acCmdCopy
end sub

Bei Strg-V wird der Inhalt meiner Form angezeigt und nicht der Inhalt vom PDF-File.

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: steffen0815 am Juni 30, 2017, 17:03:24
Hallo,
externe Programme werden (im Normalfall) parallel gestartet, dh. dein Code wartet nicht bis die PDF offen ist. Damit läuft dein nachfolgender Befehl "ins Leere".
Man kann da sicher was "zaubern", aber das wird nix Gescheites.

Etwas Richtiges erreicht man nur über Automatisierung das wäre dann aber speziell auf Acrobat abgestimmt.

Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: PhilS am Juni 30, 2017, 18:20:06
Meines Wissens kopiert DoCmd.RunCommand acCmdCopy den Inhalt des aktiven Access Steuerelementes in die Zwischenablage. Das dies auch mit externen Programmen/Dokumenten funktionieren würde, wäre mir neu.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Lachtaube am Juni 30, 2017, 18:23:53
Fehler meinerseits: nshowcmd ist natürlich das entscheidende Argument. Anbei ein Minimalbeispiel.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juli 01, 2017, 08:30:42
Hallo Lachtaube,

Danke für deine Hilfe. Bekomme noch eine kleine Fehlermeldung, ansonsten kann ich den Code erst Montag testen.
Wenn du mal in Köln bist gebe ich ein Kölsch aus :-)

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Lachtaube am Juli 01, 2017, 11:03:46
@Ken,

Office in der 64-Bit Version benötigt eine leicht abgeänderte API-Deklaration.
Public Declare PtrSafe Function ShellExecute Lib "shell32" _
   Alias "ShellExecuteW" ( _
   ByVal hWnd As LongPtr, _
   ByVal lpOperation As LongPtr, _
   ByVal lpFile As LongPtr, _
   ByVal lpParameters As LongPtr, _
   ByVal lpDirectory As LongPtr, _
   ByVal nShowCmd As Long) As LongPtr

Die wichtigsten Deklarationen kannst Du Dir von Microsoft übrigens unter Office 2010 Help Files: Win32API_PtrSafe with 64-bit Support (https://www.microsoft.com/en-us/download/details.aspx?id=9970) besorgen.

... und natürlich ein Dankeschön für die Einladung zum Kölsch - nur ist mir der Weg von Berlin an den Rhein für den Zweck des Kölschtrinkens doch etwas sehr weit.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juli 03, 2017, 08:18:40
Hallo Lachtaube,

Berlin...hmm...das ist wirklich etwas weit weg für ein Bier. Aber man sieht sich ja immer zweimal im Leben  ;)
So, den Code von Dir getestet, habe nur meinen Befehl:
DoCmd.RunCommand acCmdCopy
hinzugefügt.

Bekomme dann die Fehlermeldung die Aktion Kopieren ist zurzeit nicht verfügbar. Er bekommt wahrscheinlich keinen Focus auf das PDF.

Nochmals vielen Dank für deine Hilfe!

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Lachtaube am Juli 03, 2017, 08:23:48
Ken, jetzt fehlt mir etwas der Zusammenhang. Am besten zeigst Du den kompletten Code der Prozedur und schilderst dazu kurz den gewünschten Handlungsablauf.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juli 03, 2017, 08:48:25
Hallo Lachtaube,

liegt wahrscheinlich an mir, habe mich nicht klar genug ausgedrückt.
Das Anfangsproblem war, dass ich ein PDF per VBA öffne und mit dem Befehl: DoCmd.RunCommand acCmdCopy den Inhalt des PDF in die Zwischenablage kopiere. Leider bekam aber meine Form immer den Focus und nicht das PDF und der Inhalt von dem Textfeld was zufällig markiert war ging in den Zwischenspeicher.

Meine Anfangsfrage war, wie bekomme ich den Focus auf das PDF.

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: DF6GL am Juli 03, 2017, 09:12:40
Hallo,

nicht gelesen?:


PhilS:
ZitatMeines Wissens kopiert DoCmd.RunCommand acCmdCopy den Inhalt des aktiven Access Steuerelementes in die Zwischenablage. Das dies auch mit externen Programmen/Dokumenten funktionieren würde, wäre mir neu.
Beitrag editieren


Mit
DoCmd.RunCommand acCmdCopy

kann kein externes Fenster, bzw. dessen Inhalt kopiert werden.

Um das Ganze zu bewerkstelligen, ist API erforderlich.






Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: markusxy am Juli 03, 2017, 09:17:44
@Ken,
in deinem anderen Thread habe ich dir einen Link mit einem Beispiel gepostet. Da ist eine Anleitung wie man der Code ein PDF ausliest.
Dein eingeschlagener Weg scheint zwar ein einfacher zu sein.
Access bietet aber keine Methoden um fremde Anwendungen vernünftig zu steuern.
Du kannst also entweder den Weg über Automatisation oder direkte Programmierung über api wählen.
Letzeren wählt man nur, wenn es keine Alternative gibt und er erfordert grundlegende Kenntnisse des Programmierens.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juli 03, 2017, 09:17:59
Hallo DF6GL,

doch, aber die Hoffnung stirbt zuletzt...dachte mit dem Code von Lachtaube könnte es gehen.
Sorry.

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juli 03, 2017, 09:21:20
Hallo markus888 ,

hatte ich übersehen, werde ich testen.

Vielen Dank!

Gruß
Ken
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Lachtaube am Juli 03, 2017, 09:37:07
Wenn Du Fremdsoftware installieren darfst und keine Euronen ausgeben willst, schau Dir pdftotext (https://en.wikipedia.org/wiki/Pdftotext) an.
Titel: Re: PDF über VBA öffnen und Focus setzen
Beitrag von: Ken am Juli 03, 2017, 10:15:16
Hallo Lachtaube,

ich darf leider keine Fremdsoftware installieren, aber trotzdem Danke für deine Unterstützung!
Ich schließe mal meine Anfrage, denke es gibt so einfach keine Lösung.

Danke an Alle!

Gruß
Ken