Office: Late Binding

Helfe beim Thema Late Binding in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, kann mir jemand mal was dazu sagen. Ist damit gemeint Ungebundene Formulare oder Steuerelement zu füllen. Wäre für einen oder mehrere Tipps... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von cklein, 28. September 2002.

  1. Late Binding


    Hallo,

    kann mir jemand mal was dazu sagen.
    Ist damit gemeint Ungebundene Formulare oder Steuerelement zu füllen.
    Wäre für einen oder mehrere Tipps dankbar.

    Dann noch eine Frage was ist besser Formulare mittels Recordset zu füllen oder direkt an die Tabelle oder Abfrage zu binden.

    Danke

    :)
     
  2. Hi,

    zum ersteren: Das hat auf der einen Seite nichts mit Formularen und derren Recordsetbindung zu tun, auf der anderen Seite läst es sich besser erklären, wenn man beide dazugehörigen Begriffe erwähnt

    Early Binding und Late Binding

    Beim Early Binding werden Objekte direkt bei Ihrer Erstellung (via Dim) typisiert. Einer der Effekte ist, das im VBA-Editor sofort die Eigenschaften und Methoden des Objekts zur Verfügung stehen.

    Beispiel:

    Dim db As Database ' Die Datenbank selbst ist ein Objekt
    Dim rs As Recordset ' Auch das Recordset ist ein Objekt
    Dim fld As Field ' Ein Objekt vom Typen Field

    set db = CurrentDB ' Verweis des DB-Objekts auf die aktuelle Datenbank
    Set rs = db.OpenRecordset...... ' Öffnen einer Tabelle in der Datenbank

    For Each fld in rs.Fields
    Debug.Print fld.name
    Next fld

    Wenn Du obenstehendes Coding so in den VBA-Editor eingibst, stehen Dir jeweils ab Eingabe der Punkte die Objekthilfen des VBA-Editors zur Verfügung.

    Beim Late Binding dagegen werden die Objekte erst zur Laufzeit typisiert und Du mußt sehr genau aufpassen, das Du die Methoden und Eigenschaften der Objekte im Editor richtig ansprichst:

    Dim db As Object
    Dim rs As Object
    Dim fld As Object

    Set db = CurrentDB
    Set rs = db.OpenRecordset.......

    For Each fld in rs.Fields
    Debug.Print fld.Name
    Next fld

    Wenn Du die beiden Beispiele in einem Modul eingibst, wirst Du diesen Unterschied schon'mal feststellen können.

    Ein weiterer Unterschied, den ich jetzt selbst wohl nicht ganz genau erklären kann (da ich davon selbst erst gestern erfahren habe), ist das zur Laufzeit der Programme unterschiedliche Bibliotheksversionen des selben Objects eingebunden werden können und man durch das LateBinding flexibel bleibt, welches Objekt man denn nun nutzen will. Wenn Du ein Programm durch EarlyBinding z.B. an Excel97 koppelst, kann es Dir passieren, das es mit Excel00 oder Excel02 nicht ordnungsgemäß zusammenarbeitet, weil Du die Object-Referenz zu stark auf 97 eingeschränkt hast.

    Letzteres ist jetzt nur als Beispiel gedacht, wie weit (z.B. bei Excel) die Abhängigkeiten in den Objektmodellen gehen, kann ich Dir nicht genau sagen.

    Ob es besser ist, die Formulare direkt an die Tabellen/Abfragen zu binden oder erst zur Laufzeit damit zu besetzen, hängt IMHO davon ab, welche größe das Projekt erreicht und wie viele Verbindungen zur DB geöffnet werden müssen. Sofern es sich nur um eine DB (keine Aufteilung in Front/Backend) handelt, spielt es IMHO wahrscheinlich keine große Rolle. Bei Front/Backend ist es eine Frage des Datenvolumens. Hierzu gibt es aber noch einen anderen Thread (mit englischem Titel) innerhalb der letzten 2 oder 3 Tage. Schau da besser noch'mal rein.

    Gruß

    Arno
     
  3. Danke für deine Auskunft.
    Werde morgen mal die unterschiede genauer unter die Lupe nehmen. In meinen zwei Büchern steht darüber leider nix.

    Sollte sich noch eine Frage eergben werde ich mich morgen wieder melden.

    Danke
     
  4. Late Binding

    Für meine Begriffe missbräuchlich, stolpert man über "late Binding" auch in der Bedeutung, dass Steuerelemente ihre Record/Row-Source erst "später" bekommen als direkt beim Öffnen der Formulare (dh. keine fix eingetragene Eigenschaft).

    Sinn macht sowas zB. bei einer Vielzahl von UFo's, welche nur wechselweise (Register o.ä.) einzeln sichtbar sind. Durch ein "spätes Setzen der Recordsource" kann man damit Performancegewinne erzielen.

    so long Erwin...
     
  5. hallo Leute! Ich habe brav die SuFu bemüht und zerre diesen alten Schinken daher nach 8 Jahren nochmal aus dem Keller! *Smilie

    Ich habe das Problem, dass meine DB bei verschiedenen meiner Mitarbeiter verwendet wird. Ich verwende jetzt z.B. Office Beta 2010, mein Mitarbeiter noch O2007.
    Wenn ich jetzt aber z.B. über VBA Kalenderfunktionen nutze, hat sich in meinem frontend der Verweis automatisch auf Outlook2010 umgestellt. Wenn ich mein Frontend jetzt meinen Mitarbeiter gebe, erhält er schon beim Öffnen Fehlermeldungen, und man muss erst manuell im VBA Editior den Verweis von Outlook2010 (nicht vorhanden) auf Outlook2007 umstellen, damit es geht.

    Wenn ich das hier richtig verstanden habe, könnte ich dieses Problem mit Late-Binding lösen. Die Frage ist nun, muss ich dazu meinen gesammten VBA Code um- bzw. neu schreiben, oder kann man dieses Problem noch irgendwie einfacher lösen??

    lg
    johannes
     
  6. Was der Beta-Status bedeutet, ist Dir bewusst?

    Nur Arbeitshungrige und Masochisten verwenden Beta-Versionen im Produktiveinsatz.

    Zu Late/Early Binding: Sascha Trowitzsch hat das m.M. nach hier sehr schön am Beispiel Outlook dargestellt: OLConnector Programmierung
     
  7. und zu deiner Frage
    Ja wirst Du wohl müssen (umschreiben!)!
    Hilfreich hierbei kann allerdings FindReplace sein.

    Gruß

    LL
     
  8. Late Binding

    Ein Tipp für die Code-Erstellung: Compiler-Anweisungen erlauben schnelles Umschalten.

    Prinzip:
    Code:
    Diese Variante sieht zwar auf den ersten Blick etwas umständlich aus, hat aber den Vorteil, dass man schnell zw. Early Binding und Late Binding wechseln kann. Das ist praktisch, wenn man während der Entwicklungsphase die Outlook-Bibliothek einbindet, um IntelliSense zu nutzen.
     
    Josef P., 18. Februar 2010
    #8
Thema:

Late Binding

Die Seite wird geladen...
  1. Late Binding - Similar Threads - Late Binding

  2. Verweise fehlen trotz Late Binding

    in Microsoft Access Hilfe
    Verweise fehlen trotz Late Binding: Hallo, beim Starte meiner DB-Anwendung auf einem "nackten" Rechner erhalte ich die Fehlermeldungen, dass folgende Verweise fehlen: MSOUTL.OLB v.9.6 Sharepointprovider.dll 1.0 socialprovider.dll...
  3. Hochkomma in SQL String bei late Binding af DB

    in Microsoft Excel Hilfe
    Hochkomma in SQL String bei late Binding af DB: Hallo zusammen! Ich habe heute eine Fehlermeldung bekommen, als in einem Text, der aus Excel an eine DB übermittelt wird ein Hochkomma enthalten ist. Kennt jemand für das Problem eine Lösung? Im...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden