Hallo,
ich möchte mit einem cmdButton den Dateiexplorer in einem vorgegebenen Verzeichnis öffnen.
Das Öffnen des Dateiexplorers ohne Verzeichnisvorgabe funktioniert.
Der Code mit der Verzeichnisvorgabe wird nicht kompiliert...
DLookup liefert den richtigen Wert...
Was mach ich falsch???
Vielen Dank für Eure Hilfe
Harry
Private Sub cmdVerzeichnisTN_Click()
'Verzeichnis in Datei-Explorer oeffnen
Dim strPfad As String
strPfad = DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 1") & Forms!TeilnehmerAdressdatenF!Nummer
'(Liefert den Wert D:\Workbooks\Workbook Bewerbung Datenbank\TeilnehmerVerzeichnisse\988)...also richtig
'start Explorer
'Shell("Explorer.exe " & strPfad, vbNormalFocus) 'funktioniert nicht
Shell "Explorer.exe", vbNormalFocus 'funktioniert
End Sub
Zitat von: Umbauwfb am Januar 14, 2022, 22:26:50Das Öffnen des Dateiexplorers ohne Verzeichnisvorgabe funktioniert.
Der Code mit der Verzeichnisvorgabe wird nicht kompiliert...
Schau dir mal ganz genau an, worin sich die funktionierende von der nicht funktionieren Codezeile unterscheidet; das " & strPfad" kannst du dabei ignorieren.
Ich denke, dir wird selbst der Unterschied und somit die Lösung auffallen.
Problem könnten die Leerzeichen im Pfad sein => Pfad explizit in Anführungsstrichen einpacken, z.B.
strPfad = Chr(34) & DLookup(...) & Chr(34)
Generell statt Shell würde ich aber ShellExecute bevorzugen, oder aber im einfachen Fall
Application.FollowHyperlink strPfad
Vielen Dank für die Hilfe!
Insbesondere für den einfachen Lösungsweg.
Damit brauche ich auch den Verweis zur Nutzung von Shell nicht zu aktivieren.
Ich bin blutiger Anfänger und will alles möglichst einfach halten! Finde aber die einfachen Lösungen noch nicht immer...
Der Code funktioniert jetzt einwandfrei und sieht so aus:
Dim strPfad As String
strPfad = DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 1") & Forms!TeilnehmerAdressdatenF!Nummer
If Dir(strPfad, vbDirectory) = "" Then
MsgBox "Ordner ist noch nicht angelegt"
Else
Application.FollowHyperlink strPfad
End If
End Sub
Zum Abschluss noch eine Frage zur Oberfläche des Forums: Wo ist die Stelle, an der ich anclicken kann, dass das Thema gelöst und beendet ist?
Schöne Grüße
Harry
Zitat von: PhilS am Januar 15, 2022, 10:25:48Zitat von: Umbauwfb am Januar 14, 2022, 22:26:50Das Öffnen des Dateiexplorers ohne Verzeichnisvorgabe funktioniert.
Der Code mit der Verzeichnisvorgabe wird nicht kompiliert...
Schau dir mal ganz genau an, worin sich die funktionierende von der nicht funktionieren Codezeile unterscheidet; das " & strPfad" kannst du dabei ignorieren.
Ich denke, dir wird selbst der Unterschied und somit die Lösung auffallen.
Vielen Dank für die Info!
Ich habe mein Bestes gegeben...aber ich kann den Unterschied nicht erkennen oder einordnen...
Wenn Du möchtest, kläre mich bitte auf...dann weiß ich wieder etwas mehr...
Schöne Grüße aus Lüneburg
Harry
Zitat von: Umbauwfb am Januar 15, 2022, 13:30:59Wenn Du möchtest, kläre mich bitte auf...dann weiß ich wieder etwas mehr...
Mal untereinander geschrieben, ohne den strPfad:
Shell("Explorer.exe " vbNormalFocus) 'funktioniert nicht
Shell "Explorer.exe", vbNormalFocus 'funktioniert
Klammern sind erforderlich bei einem Ausdruck, dessen Rückgabewert weiterverarbeitet werden soll, dürfen aber
nicht verwendet werden bei einem Statement, das selbst die wesentliche Anweisung der Codezeile darstellt. - Ja, das ist schwer zu verstehen und insgesamt ziemlich unsinnig. Ist aber leider in VBA so.