Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Von Early zu Late Binding

Neulich trat mal wieder so ein Problem auf: Ein Freund rief mich an und sagte, wenn er eine Datenbank mit einem Verweis auf die Bibliothek MSXML 2.6 auf einen Rechner bertrage, die nur MSXML 6.0 enthlt, liefe alles glatt: der Verweis wrde einfach auf die neue Version eingestellt. Andersherum aber knallt es: Access sucht MSXML 6.0, findet es aber nicht und verwendet stattdessen auch nicht die vorhandene ltere Version. Das Zauberwort heit in diesem Fall: Late Binding.

Von frh nach spt in drei Schritten

Early Binding bedeutet: Verweis auf eine Bibliothek setzen (wie Microsoft Word 12.0 Object Library) und im Code dann direkt auf die passenden Objekte zugreifen:

Dim objWord As Word.Application

Set objWord = ...

Dabei verwendet man, der besseren Lesbarkeit halber, Konstanten statt Zahlenwerte:

objDocument.Paragraphs.Item(1).Borders.OutsideLineStyle = wdLineStyleDashDot

Wenn man auf den Verweis auf die Word-Bibliothek verzichten wollte, msste man drei Dinge tun:

  1. Den Verweis auf dem Verweise-Dialog entfernen.
  2. In alle Deklarationen die Word-Objekte durch den Objekttyp Object ersetzen.
  3. Die Konstanten durch die betreffenden Zahlenwerte ersetzen.

Der erste Schritt ist ganz einfach. Der zweite ist reine Fleiarbeit, den man auch durch Trial and Error durchfhren kann: Dazu kompilieren Sie einfach das VBA-Projekt nach dem Entfernen des Verweises, der VBA-Editor markiert die nicht mehr vorhandenen Objekte und zeigt die Fehlermeldung Benutzerdefinierter Typ nicht definiert an (lassen Sie sich den Inhalt dieser Meldung einmal durch den Kopf gehen ...).

Folgt noch der dritte Schritt: Theoretisch mssten Sie hier entweder durch Eintippen von Ausdrcken wie dem folgenden im Direktfenster herausfinden, wie die passenden Zahlenwerte der Konstanten heien (der Verweis muss hierzu noch vorhanden sein):

? wdLineStyleDashDot

 5

Dann ersetzt man berall im Code den Ausdruck wdLineStyleDashDot durch die Zahl 5 und so weiter.

Alternativ kann man die Zahlenwerte auch im Objektkatalog nachlesen.

Es geht aber auch noch viel einfacher: Sie deklarieren einfach eine entsprechende Konstante, etwa so:

Const wdLineStyleDashDot = 5

Diese gilt im ganzen VBA-Projekt und Sie brauchen nicht an jeder Stelle die Werte zu ndern.

Und um dem ganzen die Krone aufzusetzen: Im Beitrag Konstanten fr wichtige Bibliotheken finden Sie komplette Sammlungen der Konstanten fr die verschiedenen Access-Bibliotheken sowie fr Word, Excel und Outlook.

Die dort in Textdateien enthaltenen Konstantenlisten brauchen Sie nur noch in je ein Standardmodul zu kopieren - fertig!

 

 

© 2003-2015 André Minhorst Alle Rechte vorbehalten.