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
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