collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 72
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14107
  • stats Beiträge insgesamt: 68024
  • stats Themen insgesamt: 9165
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Make Directory  (Gelesen 169 mal)

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 398
Make Directory
« am: September 12, 2018, 11:17:26 »
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?
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 398
Re: Make Directory
« Antwort #1 am: September 12, 2018, 12:37:18 »
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
 

Offline markus888

  • Access-Profi
  • **
  • Beiträge: 226
Re: Make Directory
« Antwort #2 am: September 12, 2018, 14:34:56 »
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.

Zitat
Warum 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.
« Letzte Änderung: September 12, 2018, 14:47:32 von markus888 »
10 Jahre Access
 

Offline Carl

  • Access-Profi
  • **
  • Beiträge: 398
Re: Make Directory
« Antwort #3 am: September 12, 2018, 14:53:24 »
okay, danke