Schon nahezu ebenso lange wie Excel und ähnlich erfolgreich hat MS Access den Markt für PC-Datenbanken durchdrungen. Microsoft hat mit MS-Access und Access VBA Makros vor mehr als 20 Jahren ein System geschaffen, das es zumindest bis zu einem gewissen Grad schafft, den Benutzern eine benutzerfreundliche Oberfläche anzubieten, die die im Grunde genommen schwierige Thematik der relationalen Datenhaltung vor seinen Benutzern kaschiert. Es ist Frontend und Datenbankmanagementssystem in Einem. Hier stelle ich Ihnen zwei ganz unterschiedliche Beispiele aus meiner Entwicklertätigkeit vor.
Im ersten Fall wird Access in einer Mehrbenutzerumgebung eingesetzt, weshalb Datenhaltung und Frontend in 2 unterschiedlichen Datenbanken aufgeteilt wurden, wobei das Frontend über verknüpfte Tabellen auf das Backend zugreift. Fall 2 hat zum Ziel, in einem Szenario mit prinzipiell annähernd 1 Mio. Datensätzen Performance und Stabilität durch sinnvolle Verteilung auf viele Datenbanken zu gewährleisten.
Und falls Sie sich für eine Kontaktaufnahme entscheiden: Sie treffen auf einen versierten Datenbankentwickler mit langjähriger Erfahrung, der Möglichkeiten und Grenzen von Access gut einzuschätzen weiß und vor dem Hintergrund seiner Erfahrungen nicht etwa Access als Backend Datenbank des Auswertungs Tool für Starkregenfälle verwendet hat, sondern den MS SQL Server.
Access VBA Programmierung Kostengruppen
Hoch- und Ingenieurbau: Verwaltung von DIN- und firmeneigenen Kostengruppen
Die Abbildung zur Linken zeigt eigentlich bereits das gesamte Konzept dieser Anwendung. Um Kosten- und Kostengruppen für die Kalkulation von Hoch- und Tiefbau Maßnahmen auf die mittlerweile einschlägige DIN-Norm umzustellen und die Zuordnung vom alteingesessenem System zur Din-Norm transparent zu gestalten, wurde für die Fa. WASSER-MÜLLER Ingenieurbüro GmbH eine Kostengruppen Datenbank incl. Access VBA Makros geschaffen.
Die eigentlichen Tabellen liegen in einer Backend Datenbank und sind, wie es die nebenstehende Abbildung zeigt, am linken Rand des Access Frontends mit dem Symbol für verknüpfte Tabellen im oberen Abschnitt des Navigationsbereich sichtbar.
Für die Präsentation und Bearbeitung der Daten wurden mit VBA Access Formulare und Reports geschaffen, deren Datenquelle entweder Tabellen oder Abfragen sind. Access Makros und Access VBA Code sind Bestandteil der Anwendung, zum Einen um Daten zu speichern oder die Steuerung der Anwendung zu gewährleisten.
Eine eigene Access Ribbonbar macht die notwendigen Befehle verfügbar.
Ein interessantes Beispiel für Möglichkeiten und Grenzen von MS Access stellt dieses Preisberechnungs- und Preisauskunftstool für Strom und Gas dar, das ich im Auftrag des Energiekonzerns E.ON entwickelt habe. Ziel war es, selbstständigen Handelsvertretern ein Tool zur Verfügung zu stellen, mit dessen Hilfe sie beim Kundenbesuch sofort eine an die Kundensituation angepasste Preisauskunft erstellen können. Diese Preisauskunft soll bundesweit eingesetzt werden können, alle für die PLZ des Kunden zuständigen Netzbetreiber sollen berücksichtigt werden und selbstverständlich sollte die eingesetzte Datenbank auf die aktuellen Strom- und Gaspreise zugreifen können, die gültigen gesetzlichen Umlagen berücksichtigen und auf diese Weise helfen, ein gültiges Angebot auf den Weg zu bringen.
Dass Gesamtsystem dieser Preisauskunft besteht aus etlichen, wöchentlich neu, mit aktuellen Preisen erzeugten sog. Preisauskunftsdatenbanken, die wiederum mit Hilfe einer einzigen zentralen Datenbank, der sog. Berechnungsdatenbank, von E.ON-Mitarbeitern erzeugt werden. Selbstständige Handelsvertreter erhalten immer nur die fertig berechneten Preisauskunftsdatenbanken.
Die Preisauskunfts Datenbanken enthalten, um es noch einmal zu betonen, bereits alle Preise, Netzentgelte und Umlagen je PLZ, Straße und Hausnummer, so das beim Kundenbesuch nur noch die jeweiligen Kundendaten, die Branche des Kunden, dann der Stromverbrauch je Jahr und die max. Leistung angegeben werden müssen, um einen gültigen Preis unmittelbar berechnen zu können.
Die folgende Abbildung zeigt alle in der Berechnungsdatenbank nötigen Schritte, die zur Vorbereitung des wöchentlichen Berechungslaufes auszuführen sind. Aktuelle Netzentgelte, die Netzbetreiber, und Umlagen werden importiert, Kosten- und Preise für Strom und Gas in das System eingespeist, Risikofaktoren und Margen sowie Steuern werden berücksichtigt und dann kann der Berechnungslauf ausgeführt werden.
VBA Code der Preisberechnungsdatenbank erzeugt Preisauskunftsdatenbanken.
Betrachtet man nun das oben angesprochene System der Auskunftsdatenbanken, so ergibt sich folgende Situation. Auf der einen Seite soll und muss jeder Handelsvertreter mit Daten für jede beliebige PLZ ausgestattet werden. Andererseits sollte das Tool aber stabil laufen und eine gute Performance bieten. Denn jede PLZ und Hausnummer im gesamten Gebiet der BRD zu bedienen, bedeutet etwa eine Million Datensätze zu produzieren. Und diese Datenmenge in einer Datenbank zur Verfügung stellen? Wie sich das auf Betrieb und Performance auswirken würde, diese Frage wollten wir gar nicht erst entstehen lassen.
Die Lösung bestand darin, für jedes der 12 bekannten PLZ Gebiete, eine eigene Datenbank mit den Preisen für Strom und Gas vorzuhalten. Ein Berechnungslauf, der ausschließlich über umfangreiche Access VBA Makros realisiert wurde, erzeugt diese 12 Datenbanken auf der Basis einer Musterdatenbank stets neu. Und ihr einziger Zweck dient der Bereitstellung der Daten, wenn eine Abfrage durch den Handelsvertreter ihre PLZ betrifft.
Zu guter Letzt wird eine weitere Auskunftsdatenbank als eigentliches Frontend erzeugt (das ausschließlich Daten für seinen eigenen Betrieb enthält) und nur das Frontend wird im Betrieb vom Handelsvertreter gestartet, jeder Versuch eine der anderen Datenbanken aufzurufen, wird mit einer Fehlermeldung quittiert.
Die folgende Abbildung erläutert die Handhabung des Frontends. Im Formular zur Abfrage der Kundendaten werden alle relevanten Kundendaten eingegeben und eine Preisanfrage gestartet. Die Anwendung öffnet die betreffende PLZ-Auskunftsdatenbank (diese sind in einem separaten Unterverzeichnis abgelegt), holt mit Hilfe der Datenzugriffsschicht ADO alle Preisinformation, Netzentgelte und Umlagen und berechnet Preise für alle vorgesehenen Vertragslaufzeiten und Vertragstypen "E.ON Business Power safe" und "E.ON Business Power green".
Access Programmierung E.ON Preisauskunftsdatenbank