Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

PDF-Datei in Verzeichnis und Unterverzeichnis suchen und öffnen

Begonnen von daniel.truniger, Februar 08, 2018, 13:46:51

⏪ vorheriges - nächstes ⏩

daniel.truniger

Hallo,

Ich möchte aus einem Formular eine PDF-Datei in Verzeichnis und Unterverzeichnis suchen und direkt öffnen.
Der Name der Datei wird in einem Textfeld erfasst und über eine Button die Suche/das Öffnen gestartet.

Im einem Verzeichnis habe ich es hingekriegt, aber leider nicht im Unterverzeichnis.

Kann mir Jemand bei diesem Problem weiterhelfen?

Dani


daniel.truniger

Habe zwei Varianten ausprobiert, welche ich auch Online gefunden habe.

1.
Private Sub Befehl41_Click()

Dim DeineDatei As String
Dim PfadDateiName  As String
   
DeineDatei = Möbelnummer & ".pdf"
PfadDateiName = "\\srvdc01\CAM\CAD\All-CAD\Z\" & DeineDatei
   
If Dir(PfadDateiName) <> "" Then
FollowHyperlink (PfadDateiName)
Else
MsgBox "PDF nicht vorhanden"
End If
   
End Sub


2.
Private Sub Befehl41_Click()
Dim suche As String
Dim Dateiname as String

strpfad = "\\srvdc01\CAM\CAD\All-CAD\Z\"
suche = Möbelnummer & ".pdf"

If suche = "" Then
MsgBox "Kein Dateiname vorhanden"
Else
Dateiname = Dir((strpfad & "*" & suche & "*"))
If Dateiname <> "" Then
FollowHyperlink strpfad & Dateiname
Else
MsgBox ("PDF nicht vorhanden")
End If
End If
End Sub

Beaker s.a.

Hallo Daniel,
Was sagt den das Direktfenster zum Inhalt von PfadDateiName bzw. strDateiname?
Und dies ist ja wohl doppelt
ZitatFollowHyperlink strpfad & Dateiname
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo,

--was ist "Möbelnummer"?

Code 1) sollte funktionieren, auch wenn es keine "Suchfunktion" in einem Unterverzeichnis enthält.

Bei 2)   ist If suche = "" Then  bedeutungslos und tritt nie ein.

Dateiname = Dir((strpfad & "*" & suche & "*")) findet die erste PDF-Datei, wenn Möbelnummer leer (NULL) ist und es überhaupt eine gibt.

Zitataber leider nicht im Unterverzeichnis.

Der Pfad dazu sollte wohl bekannt sein...  Insofern sollte die DIR()-Funktion in diesem Verzeichnis erneut angewendet werden, anstatt mit MsgBox eine Fehlermeldung zu produzieren.


bahasu

Hallo,

Zitat von: daniel.truniger am Februar 08, 2018, 13:46:51
Im einem Verzeichnis habe ich es hingekriegt, aber leider nicht im Unterverzeichnis.

eine Möglichkeit, auch Unterverzeichnisse auszuwerten, ist beschrieben in:
http://www.office-loesung.de/ftopic80878_0_0_asc.php

Harald
Servus

daniel.truniger

Hallo DF6GL, Haralad

Nein leider ist der Pfad der Datei nicht bekannt und muss in Hunderten von Ordnern und Dateien gesucht werden.
Die Lösung von Harald überschreitet leider meine  VBA Kenntnisse :-[.

Gruss Dani

bahasu

Hi Dani,

vielleicht hilft Dir das Beispiel im Anhang.
Es gibt ein Modul, in dem die Routinen zum rekursiven Durchsuchen von Unterverzeichnissen aufgeführt sind.

Im Formular werden Vorgaben gemacht:
1. auf welchem Laufwerk und ggf. Verzeichnis gesucht werden soll
2. welche Datei gesucht werden soll.

Der Button übergibt diese Parameter an die im Modul definierte Funktion.
Gespeichert werden die Ergebnisse in einer Tabelle.


Harald
Servus

daniel.truniger

Hallo Harald,

Viele Dank, mit diesem Beispiel habe ich es auch noch begriffen.
Ich Modifizierte den Code noch etwas, damit die Datei geöffnet und nicht in eine Tabelle geschrieben wird.

Leider geht es zu lange bis die Datei geöffnet wird, darum muss ich mir eine andere Lösung suchen.
Habe schon Ansätze im Internet gefunden, in welchen der Explorer geöffnet wird und der Wert in die Standard Suche geschrieben wird. Leider habe ich die richtige Version auch noch nicht gefunden.
Dani