Farbschema: Dunkel
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Anwendung auf Release 2.0 umstellen

Anwendung auf Release 2.0 umstellen

Stellen Sie eine Access-Anwendung mit WKL-Steuerelementen von Release 1.x auf Release 2.0 der WKL Forms Object Library um. Mit Release 2.0 erhält die Typbibliothek einen neuen Namen. Jede Anwendung, deren VBA-Code oder Verweise diesen Namen enthalten, passen Sie einmal an.

Voraussetzungen: Die Quelle der Anwendung liegt vor, also eine ACCDB oder ein Projekt, das mit dem Build-Werkzeug oder dem WKL Office SDK gebaut wird. Eine ACCDE lässt sich nicht ändern; bauen Sie sie aus ihrer ACCDB neu.

Lösungsüberblick

Release 1.xRelease 2.0
Name der Bibliothek in VBAWklComponentsWklForms
Verweis (Extras › Verweise)WKL Forms 1.x Object LibraryWKL Forms 2.0 Object Library
ProgIDs für CreateObjectWklComponents.Texts, WklComponents.Application …WklForms.Texts, WklForms.Application …
Err.Source bei Fehlern der SteuerelementeWklComponentsWklForms
Natives StartmodulWkl.Access.Components.dllWkl.Forms.ObjectLibrary.dll

Bibliotheks-ID, Klassen-IDs und Member der Steuerelemente sind dieselben wie in Release 1.68. Formulare und Berichte behalten ihre WKL-Steuerelemente samt allen Einstellungen. Zu ändern sind nur Code und Verweise, die den Namen der Bibliothek enthalten.

Für einen Windows-Benutzer kann nur eines der beiden Releases registriert sein. Die Registrierung von 2.0 entfernt die Registrierung von 1.x einschließlich der ProgIDs WklComponents.*. Wird danach wieder ein Release 1.x registriert, ersetzt es 2.0. Stellen Sie deshalb alle Anwendungen, mit denen ein Benutzer arbeitet, gleichzeitig um.

Umsetzung

  1. Registrieren Sie Release 2.0 auf dem Entwicklungs-PC (Freigegebenes Paket installieren). Ab diesem Zeitpunkt sind die ProgIDs WklComponents.* auf diesem PC nicht mehr registriert: CreateObject("WklComponents.Texts") und ähnliche Aufrufe scheitern mit dem Laufzeitfehler 429.
  2. Öffnen Sie die Datenbank ohne Startcode. Halten Sie beim Öffnen die Umschalttaste gedrückt. Dann laufen weder das Startformular noch das Makro AutoExec gegen die alten Verweise.
  3. Prüfen Sie den Verweis. Wählen Sie im VBA-Editor Extras › Verweise. Access bindet den Verweis beim Öffnen der Datenbank über die Bibliotheks-ID an das registrierte Release 2.0. Ist WKL Forms 1.x Object Library trotzdem als „NICHT VORHANDEN“ markiert, entfernen Sie dort das Häkchen, und setzen Sie es bei WKL Forms 2.0 Object Library.
  4. Ersetzen Sie den Bibliotheksnamen im Code. Wählen Sie Bearbeiten › Ersetzen. Suchen Sie nach WklComponents, ersetzen Sie es durch WklForms, und wählen Sie als Bereich Aktuelles Projekt. Damit erfassen Sie Deklarationen wie Dim tree As WklComponents.WklTreeView, ProgIDs in CreateObject("WklComponents.Texts") und Vergleiche mit Err.Source.
  5. Suchen Sie den Namen außerhalb der Module. Text, der kein VBA-Code ist, erfasst Schritt 4 nicht, zum Beispiel eine ProgID in einer Tabelle, einer Abfrage oder einem Makro. Durchsuchen Sie die Objekte der Datenbank nach WklComponents, und ändern Sie die Fundstellen ebenso.
  6. Kompilieren Sie. Wählen Sie Debuggen › Kompilieren, korrigieren Sie verbliebene Zeilen, und speichern Sie. Erstellen Sie danach aus der ACCDB eine neue ACCDE.

Projekt, das aus Quelldateien gebaut wird

Bei einem Projekt, das mit tools\build\Build-AccessApp.ps1 oder dem WKL Office SDK gebaut wird, ändern Sie die Quelldateien statt der Datenbank:

  • Ändern Sie in references der access-app.json den Eintrag { "library": "WklComponents", "major": 1, "minor": ... } in { "library": "WklForms", "major": 2, "minor": 0 } (access-app.json). Solange ein Verweis WklComponents nennt, bricht der Build mit einer Meldung ab.
  • Setzen Sie in source\references.json eines WKL-Office-SDK-Projekts beim Verweis mit der Bibliotheks-ID {A37D549E-FCD0-48EC-8B14-C7323B747E4F} den Wert "name" auf WklForms, "major" auf 2 und "minor" auf 0.
  • Ersetzen Sie in den exportierten Modulen, Formularen und Berichten WklComponents durch WklForms.
  • Bauen Sie neu. Die neue app-manifest.json nennt unter requires die Bibliothek WklForms mit Version 2.0 (app-manifest.json).

Ergebnis

Die Anwendung kompiliert gegen WKL Forms 2.0 Object Library, und ihre Formulare zeigen die WKL-Steuerelemente wie bisher. Verteilen Sie sie nur zusammen mit Release 2.0 auf Benutzer-PCs (Anwendung mit WKL-Steuerelementen auf Benutzer-PCs verteilen), und zwar mit WKL Bootstrapper 3.1 oder höher: Erst ab 3.1 erkennt der Starter Anwendungen für 2.0 und registriert Wkl.Forms.ObjectLibrary.dll; ältere Versionen kennen nur Release 1.x. Eine noch nicht umgestellte Anwendung kann auf einem PC mit Release 2.0 zum Teil weiterlaufen, weil Access ihren Verweis über dieselbe Bibliotheks-ID bindet. Was die ProgIDs WklComponents.* verwendet oder Err.Source mit WklComponents vergleicht, scheitert dort jedoch. Zugesichert ist der Betrieb nur mit der Hauptversion, gegen die die Anwendung gebaut wurde.

de/wiki/msaccess/comctl/how-to/move-an-application-to-release-2.txt · Zuletzt geändert: von Wolfgang van der Stille