März 03, 2021, 06:25:31

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Datei aus Endlosformular heraus öffnen

Begonnen von Carl, Januar 16, 2021, 22:47:33

⏪ vorheriges - nächstes ⏩

Carl

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

steffen0815

Gruß Steffen

Carl

okay, danke.

Wie wird das in diesen Code eingesetzt? Er sagt bei mir "Datei nicht" gefunden.

Carl

steffen0815

Hallo,
wie der Code eingesetzt wird ist doch im Link ausführlich beschrieben.

Zeige bitten deinen Code.
Gruß Steffen

Carl

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

steffen0815

Hallo,
versuche es so:Call ShellExecute(0, "open", strFN2, vbNullString, vbNullString, vbMaximizedFocus)
Gruß Steffen

Carl

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

steffen0815

Hallo,
du musst natürlich auch den Code aus dem Link noch in ein allgemeines Modul einfügen.
Gruß Steffen

Carl

Wieso reicht es nicht, wenn er mit in dem Sub ist?

Carl

steffen0815

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.
Gruß Steffen

Carl

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


steffen0815

Hallo Carl,
was hat diese Frage mit dem Thema ShellExecute zu tun?
SELECT [abfAufgabentypFilter].[IDAufgabentyp], 'Typ:' & [abfAufgabentypFilter].[AufgabentypName] FROM abfAufgabentypFilter ORDER BY [AufgabentypName];
Gruß Steffen

Carl

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


steffen0815

Hallo,
in Kompaktschreibweise so:
me.Instruktion.enabled = CreateObject("Scripting.FileSystemObject").FileExists(strFN2)
Gruß Steffen