Liebe Ratgebende, ein gesundes Jahr 2021.
Mit dem folgenden Code öffne ich per Klick Dateien direkt aus dem Formular. Wenn es sich um Word-Dateien handelt, werden die ohne Zögern geöffnet.
Wenn es sich um pdf handelt, kommt vorher ein verstörendes Fenster das davor warnt, dass nun ein Viewer einer Drittpartei angezeigt wird, in dem Fall Adobe.
Gibt es eine Möglichkeit, den PDF anzeigen zu lassen, ohne dass das Fenster kommt?
Private Sub Instruktion_Click()
Dim strFN2 As String
On Error GoTo Err_Handler
strFN2 = Nz(Me!AufgabentypLink, "")
If Dir(strFN2) <> "" Then
FollowHyperlink strFN2
Else
Application.FollowHyperlink Me!Pfad1
'MsgBox "Blah 1", 64, "Blah2"
End If
Exit_Err_Handler:
Exit Sub
Err_Handler:
MsgBox "Fehler " & Err.Number & " " & Err.Description & " ist aufgetreten"
Resume Exit_Err_Handler
End Sub
Hallo,
nutze ShellExecute() (https://dbwiki.net/wiki/VBA_Tipp:_Anwendung_mit_ShellExecute_starten) statt FollowHyperlink.
okay, danke.
Wie wird das in diesen Code eingesetzt? Er sagt bei mir "Datei nicht" gefunden.
Carl
Hallo,
wie der Code eingesetzt wird ist doch im Link ausführlich beschrieben.
Zeige bitten deinen Code.
Zitat von: steffen0815 am Januar 19, 2021, 07:39:13Hallo,
wie der Code eingesetzt wird ist doch im Link ausführlich beschrieben.
Zeige bitten deinen Code.
Ich wollte das so lassen, weil der Link aus einem Feld abgefragt wird.
Dim strFN2 As String
On Error GoTo Err_Handler
strFN2 = Nz(Me!AufgabentypBeispielLink, "")
If Dir(strFN2) <> "" Then
'FollowHyperlink strFN2
Call ShellExecute(0, "open", "strFN2", ""), vbNullString, vbNullString, vbMaximizedFocus)
Else
Application.FollowHyperlink Me!Pfad1
'MsgBox "Dieses Beispiel ist nicht aufrufbar!", 64, "Instruktion nicht vorgesehen:"
End If
Exit_Err_Handler:
Exit Sub
Err_Handler:
MsgBox "Fehler " & Err.Number & " " & Err.Description & " ist aufgetreten"
Resume Exit_Err_Handler
Hallo,
versuche es so:Call ShellExecute(0, "open", strFN2, vbNullString, vbNullString, vbMaximizedFocus)
Zitat von: steffen0815 am Januar 19, 2021, 14:34:54Hallo,
versuche es so:Call ShellExecute(0, "open", strFN2, vbNullString, vbNullString, vbMaximizedFocus)
Hier gibt er die Fehlermeldung aus: Sub oder Function nicht definiert und markiert "Call ShellExecute" dabei.
Carl
Hallo,
du musst natürlich auch den Code aus dem Link noch in ein allgemeines Modul einfügen.
Wieso reicht es nicht, wenn er mit in dem Sub ist?
Carl
Hallo,
ZitatWieso reicht es nicht, wenn er mit in dem Sub ist?
Weil dann die Fehlermeldung kommt
ZitatSub oder Function nicht definiert
ShellExecute() ist keine VBA-Prozedur, sondern eine benutzerdefinierte Prozedur ist, welche erst definiert werden muss.
okay!
Und sag mal, wie kann ich bei einem Listenfeld mit der Datensatzherkunft:
SELECT [abfAufgabentypFilter].[IDAufgabentyp], [abfAufgabentypFilter].[AufgabentypName] FROM abfAufgabentypFilter ORDER BY [AufgabentypName];
das so gestalten, dass im angezeigten Listenfeld vor den Einträgen jeweils das selbe Wort steht? Zum Beispiel "Typ:"
Konkret werden jetzt die Einträge aus [AufgabentypName] angezeigt, aber es soll "Typ:" vor jedem Namen stehen. Es hatte hier schonmal jemand diese Funktion gezeigt, aber ich finds leider nicht mehr.
Carl
Hallo Carl,
was hat diese Frage mit dem Thema ShellExecute zu tun?
SELECT [abfAufgabentypFilter].[IDAufgabentyp], 'Typ:' & [abfAufgabentypFilter].[AufgabentypName] FROM abfAufgabentypFilter ORDER BY [AufgabentypName];
Vielen Dank für Deine Antworten, die haben mir sehr geholfen.
Ich habe noch eine damit in Zusammenhang stehende Frage: Kann ich bei einer Schaltfläche, die eine Datei aufruft, von dieser Schaltfläche prüfen lassen, ob der Link beim Klick funktionieren WÜRDE, und wenn nein, die Schaltfläche farblich eingrauen? Also wenn die Datei nicht vorhanden ist, soll auch der Button grau sein oder auch ausgeblendet. Hast Du dafür vielleicht mal ein Beispielcode? Ich finde nicht, wonach ich suchen soll.
Carl
Hallo,
in Kompaktschreibweise so:
me.Instruktion.enabled = CreateObject("Scripting.FileSystemObject").FileExists(strFN2)