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

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2008.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Wo liegen die Vor- und Nachteile von Late und Early Binding? Wie gelingt der Wechsel von der einen zur anderen Technik?

Techniken

Verweise, VBA

Voraussetzungen

Access 97 oder höher

Beispieldateien

Demo.LateEarlyBinding.mdb
Demo.LateEarlyBinding.2000.mdb
Demo.LateEarlyBinding.2007.mdb

Shortlink

601

Verweise: Late und Early Binding

Thomas Möller, Weinstadt

Im vierten Teil der Beitragsreihe rund um das Thema Verweise geht es um Late und Early Binding. Das Ziel dieses Beitrags ist es, die Vor- und Nachteile beider Verfahren herauszuarbeiten. Danach erfahren Sie, wie Sie das Beste aus beiden Techniken herausholen und wie Sie den Wechsel von einem zum anderen Vorgehen so bequem wie möglich gestalten.

Wenn das Objektmodell von Access einmal nicht ausreicht, um eine Aufgabe zu erfüllen, haben Sie dank VBA die Möglichkeit, auf das Objektmodell anderer Anwendungen zuzugreifen. Dort können Sie sich die benötigten Funktionen quasi "ausleihen". Um die Objekte und Methoden einer fremden Anwendung für Access verfügbar zu machen, haben Sie grundsätzlich zwei Möglichkeiten, nämlich Early Binding und Late Binding.

Anhand eines kleinen Beispiels lernen Sie diese beiden Techniken kennen. Dabei soll einfach nur ein Word-Dokument geöffnet und angezeigt werden. Dieses Beispiel ist absichtlich kurz gehalten. Es soll Ihnen lediglich die wesentlichen Kernelemente der beiden Techniken näherbringen.

Early Binding

Beim Early Binding setzen Sie einen Verweis auf die verwendete Bibliothek. Im konkreten Fall ist ein Verweis auf Microsoft Word erforderlich:

Dim objWord As Word.Application

Set objWord = New Word.Application

With objWord

.Visible = True

.Activate

.WindowState = wdWindowStateMaximize

.Documents.Open (CurrentProject.Path & _

"\Test.doc")

End With

Diese Anweisungen deklarieren und instanzieren als Erstes eine Variable vom Typ Word.Application und machen danach Word sichtbar. Das Fenster von Word wird aktiviert und maximiert. Am Ende wird ein Word-Dokument geladen. Dadurch, dass Sie Early Binding verwenden, haben Sie folgende Vorteile:

  • Sie erhalten IntelliSense-Unterstützung beim Programmieren.
  • Beim Kompilieren wird eine Syntax-Prüfung vorgenommen.
  • Sie können eingebaute Konstanten verwenden.

Insgesamt ist ein Performancevorteil zu erwarten, da für Access beziehungsweise VBA die zu verwendende Bibliothek bereits beim Kompilieren bekannt ist.

Wenn Early Binding so viele Vorteile hat, warum dann dieser Artikel? Early Binding hat leider einen entscheidenden Nachteil: Sie benötigen einen Verweis. Dass bei der Verwendung von Verweisen so einiges schiefgehen kann, hat der letzte Beitrag dieser Reihe gezeigt (Defekte Verweise: Ursachen und Lösungen, Shortlink 572).

Late Binding

Ein zusätzlicher Verweis ist beim Late Binding nicht erforderlich:

Dim objWord As Object

Set objWord = CreateObject ("Word.Application")

With objWord

.Visible = True

.Activate

.WindowState = 1

.Documents.Open (CurrentProject.Path & _

"\Test.doc")

End With

Beim Late Binding wird eine Variable vom Typ Object deklariert. Dieser Variablen weisen Sie dann mit der Methode CreateObject plus der sogenannten ProgID Word.Application eine neue Instanz von Microsoft Word zu.

Der weitere Code ist fast identisch mit dem vorherigen Beispiel. Ein Unterschied besteht lediglich in der Zuweisung des Wertes für die Eigenschaft WindowState. Statt der in Word eingebauten Konstanten wdWindowStateMaximize wird hier deren Wert 1 verwendet. Die Vorteile, die Sie bei Early Binding haben, entsprechen den Nachteilen von Late Binding:

  • Sie erhalten keine IntelliSense-Unterstützung beim Programmieren.
  • Beim Kompilieren kann keine Syntax-Prüfung vorgenommen werden.
  • Sie können keine eingebauten Konstanten verwenden. Diese müssen Sie durch deren Werte ersetzen.

Insgesamt ist ein Performance-Nachteil zu erwarten, da für Access beziehungsweise VBA die zu verwendende Bibliothek erst zur Laufzeit ermittelt und durchsucht werden muss. Late Binding hat aber einen entscheidenden Vorteil: Sie benötigen keinen Verweis. Wenn Ihre Anwendung auf einem anderen Rechner ausgeführt wird, auf dem eine abweichende (ältere) Version von Microsoft Word installiert ist, wird dieser Code auch dort funktionieren.

Probleme mit Verweisen

Welche Probleme es mit fehlerhaften Verweisen geben kann, hat Ihnen der oben bereits erwähnte Beitrag dieser Reihe gezeigt. Lassen Sie uns kurz untersuchen, wann und wie es zu fehlerhaften Verweisen im Rahmen von Automation kommen kann. Gehen Sie davon aus, dass Sie eine Anwendung erstellt haben, in der Sie einen Verweis auf Microsoft Word gesetzt haben, um per Early Binding zum Beispiel die oben gezeigte Funktionalität zu realisieren. Solange die Anwendung auf Ihrem Rechner verbleibt, gibt es keine Probleme. Interessant wird es erst, wenn Sie diese weitergeben. Wenn Ihre Anwendung auf einem Rechner ausgeführt wird, auf dem die gleiche Version von MS Word installiert ist, sind keine Probleme zu erwarten.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Verwandte Beiträge:

Verweise - ActiveX-Steuerelemente

Defekte Verweise: Ursachen und Lösungen

Verweise mit VBA manipulieren

Excel automatisieren

Tabellen wie unter Excel

Bibliotheksdatenbanken

Verweise – die Grundlagen

© 2003-2015 André Minhorst Alle Rechte vorbehalten.