Neuigkeiten:

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

Mobiles Hauptmenü

Verzeichnis anlegen

Begonnen von Carl, Oktober 29, 2017, 10:21:23

⏪ vorheriges - nächstes ⏩

Carl

Ich habe mal ne Frage,

ich lege derzeit mit MkDir ein Verzeichnis an und kopiere da eine Datei hinein. So wie hier:


Sub VerzeichnisAnlegen()
    On Error Resume Next
     MkDir DLookup("Hilfstexte", "tblHilfstexte", "ID=1") & Me!WOOrdnername
'wobei WOOrdnername ein Feld in der DB ist.
FileCopy "S:\A\!Manual.docx", "S:\A\" & Me!WOOrdnername & "\Manual.docx"
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close
End Sub


Wie kann ich bei MkDir und FileCopy verhindern, dass das Verzeichnis erneut angelegt wird oder der file überschrieben wird? Statt dessen soll eine Fehlermeldung kommen, dass das Verzeichnis/Datei schon existiert.

Carl

MzKlMu

Hallo,
so sollte das klappen:
Sub VerzeichnisAnlegen()
    On Error Resume Next
If Dir("S:\A\" & Me!WOOrdnername) > "" Then
     MsgBox "Gibt es schon"
     Exit Sub
End If
     MkDir DLookup("Hilfstexte", "tblHilfstexte", "ID=1") & Me!WOOrdnername
'wobei WOOrdnername ein Feld in der DB ist.
FileCopy "S:\A\!Manual.docx", "S:\A\" & Me!WOOrdnername & "\Manual.docx"
DoCmd.RunCommand acCmdSaveRecord
DoCmd.Close
End Sub


PS:
Mit 80 Beiträgen im Forum, solltest Du eigentlich gelernt haben, dass man für Codedarstellungen die Codetags des Forums benutzt.
Gruß Klaus

ebs17

ZitatStatt dessen soll eine Fehlermeldung kommen, dass das Verzeichnis/Datei schon existiert.
Was soll ein User mit einer Meldung anfangen, wenn der Code Mist macht? Eine Meldung "Du bist gegen die Wand gefahren" wäre für Auto und eigene Gesundheit nicht befriedigend. Besser ist doch, dass man bei zu erwartenden Zuständen prüft und in Auswertung der Prüfung reagiert.

If Dir("S:\A\" & Me!WOOrdnername, vbDirectory) > "" Then ' Verzeichnis existiert
If Dir("S:\A\" & Me!Filename) > "" Then ' Datei existiert


DoCmd.RunCommand acCmdSaveRecord
Welchen besonderen Sinn macht diese Anweisung? Bei einem gebundenen Formular wird spätestens mit dem Schließen des Formulars der aktuelle Datensatz automatisch gespeichert. Ein ungebundenes Formular hat keine Datensätze, die zu speichern wären.
Mit freundlichem Glück Auf!

Eberhard