Neuigkeiten:

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

Mobiles Hauptmenü

Make Directory

Begonnen von Carl, September 12, 2018, 11:17:26

⏪ vorheriges - nächstes ⏩

Carl

Hallo, der unten stehende Code erzeugt den Fehler 76, den ich nicht finde. Er steht in einer Start-DB, die eine andere DB in einen neu zu erstellenden Ordner laden und starten soll. Der neue Ordner wird nicht erstellt.


Private Sub Form_Current()
MkDir "Application.CurrentProject.Path" & "\A"
FileCopy "N:\xxx\Einsatzplaner.accdb", Application.CurrentProject.Path & "\A\Einsatzplaner.accdb"
Shell SysCmd(acSysCmdAccessDir) & "MSaccess.exe """ & CurrentProject.Path & "\A\Einsatzplaner.accdb""", vbNormalFocus
DoCmd.Quit
End Sub


Wahrscheinlich ist die zeichenkette
MkDir "Application.CurrentProject.Path" & "\A" fehlerhaft.

Was könnte das sein?

Carl

Hallo nochmal,

ich habe jetzt selber diese Lösung gefunden, die scheinbar zu funktionieren scheint.


Private Sub Form_Current()
On Error Resume Next
Dim A_dir As String
Dim fs
A_dir = CurrentProject.Path & "\~EP.frontend"
Set fs = CreateObject("Scripting.FileSystemObject")
  If Not fs.folderexists(A_dir) Then
  fs.createfolder (A_dir)
End If
FileCopy "N:\xxx\Einsatzplaner.accdb", Application.CurrentProject.Path & "\~EP.frontend\Einsatzplaner.accdb"
Shell SysCmd(acSysCmdAccessDir) & "MSaccess.exe """ & CurrentProject.Path & "\~EP.frontend\Einsatzplaner.accdb""", vbNormalFocus
DoCmd.Quit
End Sub


Was ich nicht verstehe ist die Zeile


Shell SysCmd(acSysCmdAccessDir) & "MSaccess.exe """ & CurrentProject.Path & "\~EP.frontend\Einsatzplaner.accdb""", vbNormalFocus
DoCmd.Quit


Warum kommt da der ordnername "~EP.frontend" nochmal vor?

Carl

markusxy

#2
Zitat von: Carl am September 12, 2018, 12:37:18
ich habe jetzt selber diese Lösung gefunden, die scheinbar zu funktionieren scheint.

Das ist eine gute Formulierung.
Wenn man "On error resume next" verwendet, ist zumindest sichergestellt, dass man nicht wissen kann, ob der Code funktioniert.!!  ;D
Die Kopieranweisung führt z.B. zu einem Fehler, wenn ein anderer Prozess die Datei mit Schreibrechten geöffnet hat.

ZitatWarum kommt da der ordnername "~EP.frontend" nochmal vor?
Die Shell Anweisung öffnet die Datei, dazu muss der gesamte Pfad vorhanden sein.
Sonst kann die Datei ja nicht gefunden werden.

Carl