Veteran
Beiträge: 140
| Hallo,
möglicherweise wird die Störung durch zu viele zeitgleich geöffnete (parallele) Instanzen verursacht.
Nach dem Shell Befehl, der die MS Access DB öffnet, würde ich einen Stop einbauen, der den nächsten Shell Aufruf erst startet, wenn die vorherige Instanz wieder zu ist. Um sicher zu prüfen, ob die Instanz beendet ist, kann man ein Textfile verwenden, in das der aktuelle Status geschrieben wird.
Um einen "Endlos-Hänger" zu vermeiden gibt man mittels einem Timer eine Maximalzeit vor, die der Stop aktiv sein darf. Nach Ablauf des Timers (z.B. 5 sec) setzt man das Timerinterval im Timerevent wieder auf 0.
Function transferText
shell .... 'erster Aufruf
me.timerinterval = 5000
StatusErledigtAuslesen 'Wert wird aus der Instanz in das Textfile geschrieben und hier ständig ausgelesen
Do while me.timerinterval = 5000 and not Status = erledigt
StatusErldigtAuslesen
doevents
loop
'ggf. Fehlerbehandlung, wenn Instanz nach 5 sec. immer noch offen ist
shell .... 'nächster Aufruf usw.
end function
mfg
Stephan
Edited by sks 11.05.17 09:42
|