Benutzer mit den meisten Antworten
Datei aus Access per VBA öffnen

Frage
-
Hallo Zusammen,
bisher habe ich mit folgender Funktion eine beliebige Datei aus Access heraus geöffnet:
Function VerzeichnisÖffnen(strVerzeichnispfad As String)
If Not IsNull(strVerzeichnispfad) Then
Shell "c:\windows\explorer.exe /e," & strVerzeichnispfad, vbNormalFocus
'Shell "c:\windows\explorer.exe " & strVerzeichnispfad, vbNormalFocus
Else
MsgBox "Bitte geben Sie zuerst einen Verzeichnispfad an.", vbOKOnly, "Pfad fehlt"
End If
End Function
Das geht nur jetzt nicht mehr. Keine Ahnung wieso. strVerzeichnispfad beinhaltet einen Pad nach dem Schema:
\\computer\verzeichnis\unterverzeichnis\datei.txt
Ich bin sicher, dass das schon mal ging. Habe Access 2010 unter Windows 7.
Kann mir jemand helfen? Gibt es einen anderen Weg eine Datei zu öffnen?
Vielen Dank für die Hilfe
Viele Grüße
Patrick
Antworten
-
Hallo Patrick,Man konnte auch statt VB Shell Funktion die API ShellExecute Funktion verwenden:
Option Compare Database Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hWnd As Long, ByVal lpOperation As String, _ ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub Command0_Click() Dim strPath As String strPath = "\\path\path\bogdan\test.xlsx" ShellExecute 0, "open", strPath, "", "", 1 End Sub
Grüße,Bogdan
Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt- Als Antwort markiert Patrick Pohlmann Montag, 19. September 2011 13:28
-
Hallo Bogdan
Bogdan Petru Roiu wrote:
Man konnte auch statt VB/Shell/Funktion die API /ShellExecute
<http://msdn.microsoft.com/en-us/library/bb776886(v=VS.85).aspx>/Funktion
verwendenOder dann halt ganz konventionell mit Access Bordmitteln
Application.FollowHyperlink strDateiname, , True, False
Gruss
Henry- Als Antwort markiert Peter DoeringMVP, Moderator Dienstag, 20. September 2011 21:58
Alle Antworten
-
Zum Öffnen der Datei reicht es, diese direkt per Shell anzusprechen (Shell DateiPfad). Solange der Dateityp registriert ist recith das.
Deine Pfadangabe ist nur dann ein korrekter Pfad zu einer Datei, wenn du ein entsprechendes Share freigegeben hast. Der UNC-Pfad besteht nämlich korrekterweise aus
\\ComputerName\ShareName[\SubFolder][\FileName[.Extension]]
Die weitere Frage ist, ob das Share sowie der Pfad und/oder die Datei an sich noch da sind.Da du es unter Windows 7 machst, kann eventuell noch die Virtualisierung rein spielen, sofern die Datei lokal ist.
-
Hallo Stefan,
vielen Dank für die schnelle Antwort. Das (oder der?) Share steht da drin. Also das Laufwerk was auf dem Server freigeben ist.
Wenn ich den ganzen Pfad einfach in den Explorer kopiere öffnet die Datei auch normal. Nur eben nicht (mehr) über meine Funktion.
-
Hallo Patrick,Man konnte auch statt VB Shell Funktion die API ShellExecute Funktion verwenden:
Option Compare Database Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hWnd As Long, ByVal lpOperation As String, _ ByVal lpFile As String, ByVal lpParameters As String, _ ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub Command0_Click() Dim strPath As String strPath = "\\path\path\bogdan\test.xlsx" ShellExecute 0, "open", strPath, "", "", 1 End Sub
Grüße,Bogdan
Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt- Als Antwort markiert Patrick Pohlmann Montag, 19. September 2011 13:28
-
Hallo Bogdan
Bogdan Petru Roiu wrote:
Man konnte auch statt VB/Shell/Funktion die API /ShellExecute
<http://msdn.microsoft.com/en-us/library/bb776886(v=VS.85).aspx>/Funktion
verwendenOder dann halt ganz konventionell mit Access Bordmitteln
Application.FollowHyperlink strDateiname, , True, False
Gruss
Henry- Als Antwort markiert Peter DoeringMVP, Moderator Dienstag, 20. September 2011 21:58