Access · VBA · Delphi · .NET
Ihre Software trägt das Geschäft. Modernisieren Sie sie, ohne von vorn anzufangen
Wir entwickeln geschäftskritische Bestandsanwendungen weiter – Access und VBA, Delphi, Datenbanken der Fertigung – und lösen nur ab, was sich nicht mehr tragen lässt. Für Microsoft Access bauen wir die Werkzeuge dafür selbst.
Ausgangslage
Wann eine bewährte Anwendung zum Risiko wird
Selten, weil sie nicht mehr funktioniert. Meistens, weil sich niemand mehr traut, sie zu ändern.
- Eine Datei, kein Verlauf. Die Anwendung liegt als ACCDB auf einem Laufwerk. Wer was wann geändert hat, lässt sich nicht nachvollziehen, und zwei Entwickler überschreiben gegenseitig ihre Änderungen.
- Wissen in wenigen Köpfen. Die Geschäftsregeln stecken in Formularen, Abfragen und VBA-Code – aufgeschrieben sind sie oft nirgends sonst.
- Kennwörter am Arbeitsplatz. Die Verbindung zum SQL Server steht mit Datenbankkennwort in der Anwendung, und von unterwegs geht es nur über VPN.
- Eine Insel. Webdienste, ERP und Auswertungen erreicht die Anwendung nicht; Daten werden exportiert und von Hand abgeglichen.
- Eine Oberfläche von gestern. Endlosformulare und verschachtelte Unterformulare, wo Anwender heute einen Baum, ein Raster mit Summen oder ein Gantt-Diagramm erwarten.
Warum ein Neubau selten der erste Schritt ist
Der Wert einer gewachsenen Anwendung liegt in ihren Regeln: Sonderfälle, Prüfungen und Abläufe, die über Jahre in Formulare, Abfragen und Code gewandert sind. Ein Neubau muss jede davon wiederfinden, neu beschreiben und neu testen – und solange er läuft, will das alte System weiter gepflegt werden.
Deshalb machen wir die Anwendung zuerst wieder änderbar: Quelltexte unter Versionskontrolle, saubere Schnittstellen, eine Oberfläche, mit der man gern arbeitet. Abgelöst wird ein Teil erst, wenn er sich so nicht mehr tragen lässt – etwa weil die Daten die 2 GB einer Access-Datei sprengen oder viele Standorte gleichzeitig zugreifen müssen.
Und dann Schritt für Schritt: Die Grenze jedes Schritts steht vorher fest, Rückweg und Datenkonsistenz planen und prüfen wir, bevor umgestellt wird. Schreiben alt und neu eine Zeit lang nebeneinander, ist der Abgleich Teil des Plans.
Aus der Praxis · Chemische Industrie · seit 2003
Drei geschäftskritische Systeme, über zwei Jahrzehnte weiterentwickelt – Anlagenmanagement, Werkstattinformationssystem und Lagerverwaltung: in Delphi fortgeführt, schrittweise auf .NET 8 migriert, mit DevExpress-Oberfläche, Datenbankoptimierung und CI/CD.
Vier Wege – je nachdem, wo es klemmt
Unter Versionskontrolle weiterentwickeln
Die Access-Anwendung als Quelltext in Git: Änderungen je Formular und Modul prüfen, die ACCDE aus einem festen Stand bauen.
Oberfläche erneuern, Logik behalten
Baum, Raster mit Gruppen und Summen, Gantt-Diagramm, Navigation – als Steuerelemente auf den Formularen, die es schon gibt.
Anbinden statt abschotten
Webdienste und JSON direkt in VBA; SQL-Server-Daten über einen Datendienst statt mit Kennwort am Arbeitsplatz.
Gezielt nach .NET ablösen
Wo ein Teil wirklich ersetzt werden muss: Stück für Stück, mit festgelegter Grenze und geprüftem Rückweg – so wie bei den Delphi-Systemen oben.
Was uns unterscheidet
Eigene Werkzeuge statt Folien: das Access-Ökosystem
Für Access bauen wir die Werkzeuge, die eine Modernisierung tragen, selbst – dokumentiert, mit Stand und Grenzen.
| Werkzeug | Was es löst | Stand |
|---|---|---|
| Office SDK | Die Anwendung als Quelltext in Git oder SVN; ACCDB und ACCDE werden aus einem festen Stand gebaut, auf jedem Rechner und in der CI gleich. | In Entwicklung Release 0.13.0; Windows 11 mit 32- oder 64-Bit-Access aus Microsoft 365 |
| Forms Object Library | 31 ActiveX-Steuerelemente und Objekte für Access-Formulare – Baum, Raster, Gantt-Diagramm, Navigation –, eingerichtet im Eigenschaftenblatt, lauffähig in ACCDE und Access Runtime. | Freigegeben Release 2.0.0, 32- und 64-Bit-Access |
| Office JSON | JSON in VBA mit dem Objektmodell von MSXML: Abfragen mit JPath nach RFC 9535, Beträge ohne stilles Runden, keine Laufzeitinstallation. | Freigegeben 32- und 64-Bit-Office (Microsoft 365) |
| Bootstrapper | Neue Releases je Benutzer ohne Administratorrechte, nachdem die IT den Starter einmal installiert hat: Installation mit Rollback, Komponenten in der Bitbreite des installierten Office, Entfernen über „Apps“. | Freigegeben Windows 11 mit 32- oder 64-Bit-Access (Microsoft 365) |
| Database Gateway und OData-ODBC-Treiber | SQL-Server-Daten ohne Datenbankkennwort am Arbeitsplatz, Rechte je Tabelle, Zugriff von außen ohne VPN; Access verknüpft die Tabellen und bearbeitet sie ohne VBA. | mit Access und der Access Runtime, 32 und 64 Bit |
Die Werkzeuge und der Datendienst sind auf Deutsch, Englisch und Slowenisch dokumentiert; die API-Referenzen der Forms Object Library und von Office JSON gibt es nur auf Englisch.
Von der Datei zum nachvollziehbaren Build
So kommt eine bestehende Access-Anwendung mit dem Office SDK unter Versionskontrolle. Die Befehle und das Beispielprojekt „Kunden“ stammen aus dem Tutorial.
-
Bestehende Anwendung übernehmen
Projekt anlegen, Datenbank exportieren. Der Export arbeitet auf einer Kopie in einem verborgenen Access – die Ausgangsdatenbank wird nur gelesen.
wkl-office new C:\Work\Kundencd C:\Work\Kundengit initwkl-office export Kunden.acproj -d C:\Data\Kunden.accdb
-
Quelltexte statt Binärdatei
Jede Abfrage, jedes Formular, jeder Bericht und jedes Modul wird eine Textdatei, Tabellen werden Schema, Nachschlagedaten JSON-Zeilen. Was Access bei jedem Speichern neu schreibt, lässt der Export weg.
Kunden.acproj source/ queries/ *.query.txt forms/ *.form.txt reports/ *.report.txt modules/ *.bas classes/ *.cls tables/ *.table.json data/ *.jsonl references.json
-
Änderungen prüfen wie Code
Gearbeitet wird weiter in Access. Danach zeigt das SDK, was sich geändert hat – Objekt für Objekt, Zeile für Zeile –, und der Commit landet als lesbarer Text im Repository, wo das Team ihn prüft wie jeden anderen Code.
wkl-office status Kunden.acprojwkl-office diff Kunden.acproj form:frmKundenwkl-office commit Kunden.acproj -m "USt-IdNr."
-
Ein definierter Build
Gebaut wird aus dem Repository, nicht aus der zuletzt gespeicherten Kopie.
checkfindet ungültige Quellen, fehlende Verweise und Kennwörter in Abfragen, bevor Access startet.roundtripbeweist, dass die Quellen vollständig sind: Bei Exit-Code 0 baut jeder, der das Repository klont, dieselbe Anwendung – dieselben Objekte, Tabellen, Daten und Einstellungen, wenn auch nicht byte-gleich.wkl-office check Kunden.acprojwkl-office roundtrip Kunden.acprojwkl-office build Kunden.acproj -c Release
In Entwicklung
Das Office SDK läuft in Release 0.13.0 unter Windows 11 mit 32- oder 64-Bit-Access aus Microsoft 365. Access 2016 bis 2021, Windows 10 und ein Build allein mit der Access Runtime werden nicht unterstützt; ein Build braucht eine angemeldete Windows-Sitzung mit Access. Mehr zum SDK
Nachweise, die Sie prüfen können
- Zum Nachmachen geschrieben. Die Anleitungen führen Schritt für Schritt: eine Tabelle in Access verknüpfen, mit Bildern; vom leeren Server zur ersten Abfrage.
- Selbst im Einsatz. Die Verwaltung des Datendienstes ist eine Access-Anwendung auf Forms Object Library und Office JSON – das Bild oben.
- Offen dokumentiert. Stand, Voraussetzungen und Grenzen jedes Werkzeugs stehen in seiner Dokumentation, nicht nur hier.
Zum Nachlesen: SDK-Tutorial, Aufbau der Quelltexte, Access-Werkzeuge im Überblick; Datendienst im Überblick, Treiber im Überblick.
Ihr nächster Schritt
- Ihre Access-Anwendung soll weiterleben? Wir sehen sie uns gemeinsam an und sagen Ihnen, welcher der vier Wege passt – Gespräch vereinbaren.
- Sie wollen die Werkzeuge erst selbst ansehen? Das SDK-Tutorial führt in sieben Schritten von der Datenbank zum Repository.
- Ihre Altanwendung ist kein Access? Delphi, .NET oder eine Datenbank der Fertigung: siehe Industriesoftware und unsere Referenzen.
Welcher Weg zu Ihrer Anwendung passt, klären wir am besten an Ihrem System – nicht an einer Folie.
Gespräch vereinbaren

