|
| Hallo,
Ich muss auf dem Server zu bestimmten Zeiten Daten mit Access importieren. Dazu rufe ich eine Access-Datei auf dem Server automatisch über die Aufgabenplanung auf und die Access-Datei schließt sich anschließend automatisch. Das funktioniert auch soweit.
Leider kam es jetzt schon ein paar mal vor, dass der Import vor dem letzten geplanten Zeitpunkt noch nicht abgeschlossen war und deswegen die Datei ein zweites Mal geöffnet wurde. Da es zu Problemen kommt wenn zwei Instanzen der Import-Anwendung parallel laufen muss dies unbedingt verhindert werden. Lieber sollte der Import zum geplanten Zeitpunkt ausgesetzt werden wenn eine andere Instanz läuft und dann erst wieder beim nächsten Zeitpunkt gestartet werden.
Mein Lösungsansatz bisher:
Ich habe mir mit VB eine kleine exe geschrieben, die prüft ob Access läuft (GetObject(, "Access.Application")). Falls ja, geht die exe wieder zu. Falls nein, wird die Access-Datei aufgerufen. Diese exe nehme ich dann als aufzurufendes Programm in die Aufgabenplanung.
Teste ich die exe manuell (also Aufruf per Doppelklick) dann funktioniert es einwandfrei. Beim ersten Start geht die Access-Anwendung auf. Beim zweiten Start passiert nichts, da die Anwendung noch aktiv ist.
Scheinbar ist es jedoch so, dass wenn man die exe als geplante Aufgabe startet das GetObject(, "Access.Application") nicht das bereits geöffnete Access erkennt. Meine Anwendung startet also ein zweites mal. Auch mit GetObject("d:\import.mdb" ,) habe ich das selbe Problem.
Auf dem Server ist Access 2010 Runtime SP1 installiert. Habe es jedoch auch mit der Vollversion versucht. Auch auf meinem PC tritt das gleiche Problem auf (Win7, Access 2010).
Hat mir jemand einen Tipp dazu?
Vielen Dank.
Daniel
| |
| |
|