Juni 27, 2022, 14:03:59

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Verzeichnis mit VBA anlegen. Prüfung funktioniert nicht

Begonnen von Umbauwfb, Januar 13, 2022, 10:47:05

⏪ vorheriges - nächstes ⏩

Umbauwfb

Januar 13, 2022, 10:47:05 Letzte Bearbeitung: Januar 13, 2022, 13:27:16 von Umbauwfb
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)


DF6GL

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 )

Umbauwfb

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

Beaker s.a.

--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

Umbauwfb

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


Umbauwfb

Ich nehme an, der Fehler liegt im Abgleich    if........  <> ""  ....Then....   da passt wahrscheinlich ein Format nicht????


Umbauwfb

Funktioniert!!!!
Vielen Dank!

Jetzt wühle ich mich in die Unterverzeichnisse....

Umbauwfb

Januar 13, 2022, 21:06:15 #8 Letzte Bearbeitung: Januar 13, 2022, 21:12:38 von Umbauwfb
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"