Veteran
  Beiträge: 144
   
  | 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 
 |