Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zugriffsfehler 70 nach Shellaufruf

Zugriffsfehler 70 nach Shellaufruf
11.11.2004 08:25:55
Schröder
Hallo Zusammen,
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)

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriffsfehler 70 nach Shellaufruf
RALF
Moin,
habe gleiches Problem ebenfalls nur mit einem timer gelöst. In Excel 97 war das nicht anders zu lösen....weiss aber nicht, wie Excel 2003 das handhabt.
Auszug aus der VBA Hilfe Office 97:
Syntax
DoEvents()
Übergibt die Steuerung an das Betriebssystem, damit es andere Ereignisse verarbeiten kann.
Bemerkungen
Die DoEvents-Funktion gibt einen Wert vom Typ Integer zurück, der die Anzahl der geöffneten Formulare in eigenständigen Versionen von Visual Basic (z.B. Visual Basic, Standard Edition) repräsentiert. In allen anderen Anwendungen gibt DoEvents Null zurück.
DoEvents übergibt die Ablaufsteuerung an das Betriebssystem. Das Programm erhält erst dann die Steuerung wieder zurück, wenn das Betriebssystem alle wartenden Ereignisse verarbeitet hat und alle wartenden Tastenanschläge in der SendKeys-Warteschlange abgearbeitet sind.
DoEvents ist für einfache Operationen besonders hilfreich, wenn z.B. einem Benutzer die Möglichkeit gegeben werden soll, einen Prozeß abzubrechen, nachdem er begonnen wurde, beispielweise die Suche nach einer Datei. Bei länger andauernden Vorgängen sollte die Steuerung besser mit Hilfe eines Zeitgebers an den Prozessor abgegeben werden, oder die Aufgabe sollte einer ActiveX-EXE-Komponente übertragen werden. Im zweiten Fall kann die Aufgabe vollkommen unabhängig von Ihrer Anwendung durchgeführt werden, und das Betriebssystem übernimmt das Multitasking und die Zuteilung der Prozessorzeit.
Gruß RALF
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige