Neuigkeiten:

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

Mobiles Hauptmenü

Rekursive Verzeichnissuche

Begonnen von Sauerländer, März 10, 2014, 09:51:29

⏪ vorheriges - nächstes ⏩

Sauerländer

Kann mir bitte mal jemand einen Tipp geben, was bei folgendem Programmcode falsch ist ?

Mit einer For Each-Next-Schleife wird auf einem bestimmten Laufwerk ( ,,J" ) ein Unterverzeichnis gesucht.
Wird das Verzeichnis gefunden, soll der Pfad in die Variable ,,Suchpfad" eingelesen und die Schleife abgebrochen werden. 
Danach soll der Inhalt der Variable ,,Suchpfad" ausgewertet werden:
Ist die Variable leer soll eine "Nicht gefunden" -  Meldung ,, und andernfalls eine
,,Datei  gefunden"  – Meldung ausgegeben werden.

Allerdings funktioniert bei meinem Code scheinbar der Schleifenabruch bei Datei gefunden nicht,
sondern ich bekomme in einer Endlosschleife die Msgbox ,,Dateiordner wurde nicht gefunden"
angezeigt.
Weiß  jemand wass da falsch läuft ??

Private Sub T_AufNr_Click()
SucheOrdner "J:\Auftragsordner", Forms![frmInteressenten-Projekte-Kunden]![frmUFAnlagen].Form![T_AufNr]
End Sub

Sub SucheOrdner(StartVerzeichnis, Suchtext)
Dim FSO, Verzeichnis, Unterverzeichnis, Suchpfad, Ergebnis
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Verzeichnis = FSO.GetFolder(StartVerzeichnis)
For Each Unterverzeichnis In Verzeichnis.SubFolders
    If InStr(UCase(Unterverzeichnis.Name), UCase(Suchtext)) > 0 Then
        Suchpfad = Verzeichnis & "\" & Unterverzeichnis.Name
        Exit For
    End If   
SucheOrdner Unterverzeichnis.Path, Suchtext
Next

'Nach Durchlauf der Suchschleife wird der Inhalt der Variable "Suchpfad" ausgewertet
If Suchpfad = "" Then
   MsgBox "Der gesuchte Dateiordner wurde nicht gefunden"
Else
   MsgBox "Der gesuchte Ordner wurde gefunden"
End If
End Sub

bahasu

Hi,

anbei im Anhang eine leichte Modifikation Deiner Routine {in vereinfachter Ausführung: also ohne Form, aus dem der zu suchende Inhalt kommt}.
Einige Variablen habe ich als public außerhalb der rekursiven sub deklariert.

Ansonsten kann vielleicht  auch http://www.office-loesung.de/ftopic80878_0_0_asc.php helfen.

Harald
Servus