Wenn in einem Access Report Summen falsch gebildet werden, kann das sehr viele verschiedene Ursachen haben. Meist handelt es sich um Rundungs- und Typenfehler. In dem vorliegenden Fall war die Ursache allerdings viel banaler. Als ich einen Report auf meinem PC generierte stimmte die Summenbildung (hier: 2307t). Ebenso auf dem Rechner eines Kollegen. Erst als wir die Datenbank dann schließlich auf dem Rechner des Kunden installierten, kamen utopische Zahlen heraus. Sie reichten je nach Seleketion von ca. -63000t bis 180000t. Eine Exception wurde zudem nicht ausgeworfen.
(Leider habe ich von dem fehlerhaften Report keinen Screenshot machen können)
Die Lösung war nach einigem rätseln denkbar einfach, denn es handelte sich nicht um einen Fehler im eigentlichen Sinne. Der Kunde hatte nicht die aktuellste Version von Access (? => Info).
Nachdem mein Kollege ihm das Service Pack 3 installiert hatte (Download), funktionierte auch wieder alles. Ergo: Kunde glücklich.
—
Da Access 2003 nun nicht Stand der Technik ist, möchte ich noch kurz anreißen wie sich Versionsunterschiede bei modernen Microsoft Technologien verhalten. Einer der häufigsten Fehler den ich bei sog. “strikten” Kunden zu sehen bekomme ist der folgende:
System.IO.FileNotFoundException: Die Datei oder Assembly System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Strikt deswegen, weil es Unternehmen gibt, die Service Packs oder Updates im Unternehmensnetzwerk nicht freigeben. Der obige Fehler deutet im Grunde nur daraufhin, dass die “System.Core”, also der Kern des .NET Frameworks in einer bestimmten Version (3.5.0.0) nicht vorliegt.
Das mag für Laien vielleicht verwirrend sein, aber es ist für Windowsentwickler möglich, Anwendung unter verschiedenen .NET Framework Versionen bereitzustellen. So passiert es nicht selten, dass Programme die von der eingesetzten Technologie mit der Version “2.0.0.0” zwar auskämen, trotzdem mit der Ausführungsvoraussetzung “3.5.0.0” erstellt werden.
Schafft die Installation des .NET Frameworks 3.5 (Download) daher keine Abhilfe oder ist es prinzipiell im Unternehmen nicht erlaubt dieses zu upgraden, kann es bei Individualsoftware manchmal ratsam sein, die Entwickler zu bitten, das Projekt mit einem niedrigeren Zielframework (2.0, 3.0, 3.5, später 4.0) bereitzustellen.
Fazit: Microsoft hat also auch hier aus den Fehlern der Vergangenheit gelernt. Ich hätte mir trozdem sehr gewünscht, wenn Access eine Meldung ausgegeben hätte, die daraufhin deutet dass die ausgelieferte Datenbank mit einer späteren Access Version erstellt wurde.