Zugriffsfehler 70 nach Shellaufruf
11.11.2004 08:25:55
Schröder
ich habe folgendes Problem. Ich erstelle eine *.bat Datei, die anschließend über die Shell zur Ausführung gebracht wird. Danach wird diese gelöscht.
Dabei kommt es immer wieder zum Laufzeitfehler 70: Zugriff verweigert. Kann es sein, das die Datei nach dem Close noch nicht vom System freigegeben worden ist, und so die Shell nichts finden kann? Oder das nach dem Shellaufruf die Datei ebenfalls nicht freigegeben ist, und so der Kill nicht funktioniert. Bislang behelfe ich mir immmer mit Application.Wait, aber gibt es noch eine andere Möglichkeit um sicherzustellen, das ich jetzt mit der Datei arbeiten kann? Erst wenn ich u.a. Application.Wait aktiviere, kann ich sicher sein, das
die Datei verfügbar ist.
Vielen Dank
Hier ein Auszug aus dem Coding.
'
' Öffnen ftpjob.bat zur Ausgabe
'
Open PcFTPbat For Output Access Write As #1
'
' Schreiben in ftpjob.bat
'
Print #1, "@echo off"
Print #1, "" & PcFTPexe & "-i -s:" & PcSteuerDatei
Print #1, "If errorlevel 0 echo alles OK"
Print #1, "If not errorlevel 0 echo Fehler aufgetreten"
Print #1, "Pause"
'
' Schliessen ftpjob.bat
'
Close #1
'
' newHour = Hour(Now())
' newMinute = Minute(Now())
' newSecond = Second(Now()) + 5
' waitTime = TimeSerial(newHour, newMinute, newSecond)
' Application.Wait waitTime
'
' Ausführen der ftpjob.bat innerhalb der Shell
'
OK = Shell(PcFTPbat, vbNormalFocus)
'
' newHour = Hour(Now())
' newMinute = Minute(Now())
' newSecond = Second(Now()) + 5
' waitTime = TimeSerial(newHour, newMinute, newSecond)
' Application.Wait waitTime
'
' Löschen der temporären Dateien
'
Kill (PcSteuerDatei)
Kill (PcFTPbat)