Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
780to784
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
780to784
780to784
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

"Auto-Update" mit Excel-VBA

"Auto-Update" mit Excel-VBA
12.07.2006 20:41:17
SabineM
Hallo Leute,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Auto-Update" mit Excel-VBA
13.07.2006 09:14:29
ANdreas
Hallo Sabine,
warum nimmst du nicht einfach fortlaufende Versionsnummern?
Also der Exceldatei gibst Du im VBA einfach ne Konstante mit (z.b. 10013)
Im Netzwerk legst Du eine einfache Textdatei ab, darin steht nur die aktuellste Versionsnummer (z.B. 10014). Das VBA Makro lädt nun nur die Textdatei (z.B. version.txt) und vergleicht den Inhalt mit der Konstante im Makro. Ist die aktuelle Version höher als die Konstante, wird die neue Exceldatei geladen (die enthält dann natürlich die aktuellste Versionsnummer).
Für das Überprüfen der Version, wird so gut wie gar nichts an Bandbreite benötigt - da ja nur immer die Textdatei abgefragt wird.
Gruß
Andreas
Anzeige
AW: "Auto-Update" mit Excel-VBA
15.07.2006 15:25:59
SabineM
Hallo Andreas,
sorry, kann leider erst jetzt antworten, stecke mitten im DSL-Provider-Wechsel und nichts funktioniert. Habe erstmal mein Analog-Modem wieder vorgekramt.
Zu Deinem Lösungsansatz: der ist grundsätzlich machbar. Allerdings wäre ich nicht ich, wenn das so einfach wäre. ;o)
Spaß bei Seite, mit dem Auto-Updater werden je nach Konstellation bis zu 80 kleinere und größere Dateien mit unterschiedlichen Formaten ebenfalls geupdatet. Dabei sind 2/3 dieser Dateien XML-Dateien, die sich laufend verändern. D.h. da kann ich keine Konstanten o.ä. definieren und vergleichen. Und da die XMLs mit VBA ja nicht im Stream eingelesen werden können, sondern als ganze Datei (muss ja geparsed werden), die XMLs bis zu 10 MB groß sind, kann ich da auch nicht einfach an den Anfang der XML bestimmte Versionsinformationen schreiben.
Ich hatte auch schon überlegt, den Dateinamen zu verwenden. Doch auch das scheitert an dem dynamischen Nachladen. So sind Sicherheitsmechanismen eingebaut, dass eine Datei nicht parallel von zwei Anwendern geschrieben werden kann. Der Eine muss warten bis der Andere fertig ist.
Gibt es noch andere Ansätze?
Gruß
Sabine
Anzeige

239 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige