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