"Auto-Update" mit Excel-VBA
12.07.2006 20:41:17
SabineM
ich wollte einen Loader in VBA schreiben (XLS), der eine Excel-Datei (eigentliche "Anwendung") lokal auf dem Rechner über das Netzwerk aktualisiert. Ziel ist, dass immer die aktuellste Datei lokal zur Verfügung steht und nur bei neuen Versionen über das Netzwerk die Datei (immerhin 6 MB groß), geladen werden muss. Sonst würde bei den vielen Anwendern das Öffnen ewig dauern, da viele Anwender sich in Außenstellen befinden, die nur mit ISDN angebunden sind.
Um zu prüfen, ob die lokale Version veraltet ist, habe ich gedacht, ich setze eine MD5-Hash-Prüfung ein. D.h. ich habe die lokal gespeicherte Excel-Datei in einem Rutsch in den Speicher eingelesen und daraus dann einen Hash generiert. Das selbe für die Excel-Datei im Netzwerk. Den Hash-Wert für die Original-Datei im Netzwerk wird in einer XML im Netzwerk als Vergleichswert gespeichert. Sonst müsste ich ja für den Hash-Wert erst einmal die Netzwerk-Datei übers Netzwerk lade. Das wäre am Ziel vorbei.
Soweit so klar. Das funktioniert grundsätzlich auch. Nun kommt das große ABER: sobald die lokale Excel-Datei geöffnet und wieder geschlossen wurde (ohne irgend etwas zu speichern!!!) verändert sich auch der Hash. Ich gehe davon aus, dass dies an den Excel-Infos oder die Datumsangaben o.ä. liegt, die beim Öffnen neu geschrieben werden. Damit kann ich mein Auto-Update natürlich so vergessen.
Da ich keine DLLs, OCX oder EXE-Anwendungen nutzen und einbinden, geschweige denn registrieren darf (Chef will das nicht), kann ich auch die Dateien nicht einfach Zippen und als Hash speichern und die ZIP kopieren und aktualisieren.
Hat jemand einen Tipp was ich falsch mache oder hat jemand einen anderen Ansatz?
Gruß
Sabine