Guten Morgen,
heute habe ich ein Problem bei einer Prüfung.
Ich lege ein Verzeichnis mit VBA an. Das funktioniert.
Bevor dieses Verzeichnis angelegt wird, will ich prüfen, ob dieses Verzeichnis schon existiert und für den Fall, dass es schon existiert, eine Meldung ausgeben. Das funktioniert nicht.
Vielen Dank für Eure Hilfe!
Private Sub cmdOrdnerAnlegen_Click()
If Dir(DLookup("Ordnerpfad", "OrdnerAnlegen", "ID = 1") & _
Forms!TeilnehmerAdressdatenF!Nummer) <> "" Then
MsgBox "Verzeichnis existiert schon"
Exit Sub
End If
MkDir (DLookup("Ordnerpfad", "OrdnerAnlegen", "ID = 1") & Forms!TeilnehmerAdressdatenF!Nummer)
Hallo,
wie lautet der Text zu Fehlercode 26?
"Drucke" den String mit
Debug.Print DLookup("Ordnerpfad", "OrdnerAnlegen", "ID = 1") & Forms!TeilnehmerAdressdatenF!Nummer
in das Direktfenster und zeige ihn hier mit C&P.
Lass die äußeren Klammern bei MkDir weg.
Benutze, wenn es sich um ein Directory handelt:
Dir(DLookup("Ordnerpfad", "OrdnerAnlegen", "ID = 1") & _
Forms!TeilnehmerAdressdatenF!Nummer, vbDirectory )
Hallo,
vielen Dank für die Nachricht!
Der Fehlercode 26 existiert gar nicht. Ich habe mich beim Erstellen des Beitrags irgendwie vertan und hatte wohl 2 Code-Fenster offen...das habe ich im Beitrag inzwischen auch korrigiert...Entschuldigung...
Der Code sieht jetzt wie nachfolgend aus.
Das Anlegen des Ordners funktioniert. Wenn ich den Befehl dann nochmals aufrufe, um zu prüfen, dass der Ordner nicht ein zweites mal angelegt wird, geht leider nicht die Messagebox auf, sondern ich erhalte die Fehlermeldung
Laufzeitfehler '75':
Fehler beim Zugriff auf Pfad/Datei
An der Stelle MkDir...
Access merkt wohl, dass der Ordner schon existiert...
If Dir(DLookup("Ordnerpfad", "OrdnerAnlegen", "ID = 1") & _
Forms!TeilnehmerAdressdatenF!Nummer) <> "" Then
MsgBox "Verzeichnis existiert schon"
Exit Sub
End If
MkDir DLookup("Ordnerpfad", "OrdnerAnlegen", "ID = 1") & Forms!TeilnehmerAdressdatenF!Nummer
Uups, gelöscht.
Hier ist noch der Ausdruck im Direktfenster...das ist alles so, wie es sein muss...
Debug.Print DLookup("Ordnerpfad", "OrdnerAnlegen", "ID = 1") & Forms!TeilnehmerAdressdatenF!Nummer
D:\Workbooks\Workbook Bewerbung Datenbank\TeilnehmerVerzeichnisse\1022
Ich nehme an, der Fehler liegt im Abgleich if........ <> "" ....Then.... da passt wahrscheinlich ein Format nicht????
Hallo,
und was ist mit " vbDirectory" ?
Funktioniert!!!!
Vielen Dank!
Jetzt wühle ich mich in die Unterverzeichnisse....
Der Code funktioniert jetzt auch mit den Unterverzeichnissen:
Private Sub cmdOrdnerAnlegen_Click()
Dim strPfad As String
strPfad = DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 1") & Forms!TeilnehmerAdressdatenF!Nummer
If Dir(strPfad, vbDirectory) <> "" Then
MsgBox "Ordner ist schon vorhanden"
Else
MkDir strPfad
MkDir strPfad & "/" & DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 2")
MkDir strPfad & "/" & DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 3")
MkDir strPfad & "/" & DLookup("Ordnerpfad", "OrdnerAnlegenT", "ID = 4")
MsgBox "Ordner und Unterordner wurden angelegt"
End If
End Sub[attach id=15643]OrdnerAnlagenT.jpg[/attach][attach id=15645]OrdnerAnlagenT_2.jpg[/attach]
Im Anhang zwei Screenshot zum Aufbau der Tabelle "OrdnerAnlegenT"