Access-o-Mania

Access-Forum => Formular => Thema gestartet von: Umbauwfb am Januar 13, 2022, 10:47:05

Titel: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: Umbauwfb am Januar 13, 2022, 10:47:05
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)

Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: DF6GL am Januar 13, 2022, 13:04:49
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 )
Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: Umbauwfb am Januar 13, 2022, 13:44:49
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
Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: Beaker s.a. am Januar 13, 2022, 17:26:54
Uups, gelöscht.
Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: Umbauwfb am Januar 13, 2022, 18:31:48
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

Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: Umbauwfb am Januar 13, 2022, 18:35:51
Ich nehme an, der Fehler liegt im Abgleich    if........  <> ""  ....Then....   da passt wahrscheinlich ein Format nicht????
Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: DF6GL am Januar 13, 2022, 19:08:38
Hallo,

und was ist mit " vbDirectory"  ?
Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: Umbauwfb am Januar 13, 2022, 20:24:33
Funktioniert!!!!
Vielen Dank!

Jetzt wühle ich mich in die Unterverzeichnisse....
Titel: Re: Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht
Beitrag von: Umbauwfb am Januar 13, 2022, 21:06:15
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"