Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
ADODB Connection. Welche Klassenbibliothek brauche ich dafür
zurück: Zuweisung Recordset an Formular: Laufzeitfehler 2115 weiter: Geteiltes Formular Ereignis Beim Anzeigen (Form Current) Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
h2so4kmno3
Im Profil kannst Du frei den Rang ändern


Verfasst am:
24. Jan 2011, 00:34
Rufname:

ADODB Connection. Welche Klassenbibliothek brauche ich dafür - ADODB Connection. Welche Klassenbibliothek brauche ich dafür

Nach oben
       Version: Office 2010

Hallo.

Ich will mit folgendem code eine adodb connection aufbauen.
Code:
    Dim cnn As New adodb.Connection
Wenn ich den code in VBA eintippe und bei ad angekommen bin erscheint in dem kleinen fenster das einem das Tippen abnehmen soll und die Befehle ergänzt kein ADODB. Habe den rest des codes eingetippt und bekomme nun beim laufen lassen folgende Fehlermeldung.
Zitat:
Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert
Beim klick auf hilfe erfahre ich nun.
Zitat:
Sie haben einen gültigen Datentyp angegeben, aber die Objekt- bzw. Klassenbibliothek, in der der Typ definiert ist, ist nicht in Visual Basic registriert.
Zeigen Sie das Dialogfeld Verweise an, und wählen Sie dann die entsprechende Objekt- oder Klassenbibliothek aus.
Welche Klassenbibliothek muss ich aber denn nun auswählen damit das mit
ADODB funktioniert?

h2so4kmno3
blackoutNO
SQL-Server Consultant


Verfasst am:
24. Jan 2011, 02:14
Rufname: Jörn
Wohnort: Ilmenau


AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

du musst die Microsoft ActiveX Data Object 6.0 Library auswählen.

_________________
Cheers, Jörn
Microsoft Studentpartner
Manchen kann ich helfen, weil mir andere geholfen haben und dafür bin ich sehr dankbar!!!
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
24. Jan 2011, 09:46
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

aber immer bedenken: 6.0 ist erst ab Windows Vista. Wenn es ein älteres Windows sein soll, dann besser die Version 2.8 verwenden.

Details siehe hier: ADO History

Gruß

Christian
h2so4kmno3
Im Profil kannst Du frei den Rang ändern


Verfasst am:
24. Jan 2011, 12:18
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

vielen Dank Ihr zwei. Hat funktioniert.
Beim Anzeigen der Fehlermeldung hätten die auch einen Hinweis
auf die Bibliothek geben können die man einbinden soll.

Bin dem Link mal gefolgt. Welche Bibliothek man einbinden soll
steht da aber auch nicht.
Ich habe auf dem Rechner hier Win 7 Professional 64 Bit.

h2so4kmno3
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
24. Jan 2011, 18:16
Rufname:


AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

wenn Du Deine Datenbank nur selbst oder nur auf mindestens Vista-Rechnern einsetzen möchtest, ist 6.0 OK.

Beim Anzeigen der Fehlermeldung kann Dir niemand ermitteln, was Du einbinden möchtest. Access vergleicht die verwendeten Namen (hier: ADODB) mit den geladenen Referenzen und wenn die Bibliothek nicht dabei ist, kann Access auch nicht raten, was "ADODB" eigentlich sein soll. Da könnte auch "MickyMaus" stehen, dann würde eben nach einer Bibliothek "MickyMaus" gesucht werden und wenn die nicht geladen ist, wird die gleiche Fehlermeldung ausgegeben.
Auch wenn Microsoft selbst Hersteller der ADO-Library ist, kann man nicht erwarten, daß alle eingegebenen Bibliotheksnamen mit einer Liste eigener Produkte verglichen wird, um zu erraten, was Du gerne eingebunden haben möchtest. Allein bei ADO siehst Du schon x verschiedene Versionen, die, einmal eingebunden, alle ADODB heißen - Du mußt entscheiden, welche davon Du haben möchtest. Und vielleicht ist die Bibliothek, die Du gerne hättest, nicht einmal auf Deinem Rechner installiert.

Gruß

Christian
Gast



Verfasst am:
24. Jan 2011, 18:35
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Man könnte die Bibliothek auch per Late Binding einbinden. Damit erhält man auch die Möglichkeit, Fehler (nicht nutzbare Bibliothek) per VBA abzufangen.
h2so4kmno3
Im Profil kannst Du frei den Rang ändern


Verfasst am:
24. Jan 2011, 19:07
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo Bitsqueezer,

habe ich verstanden aber wie kriege ich raus in welcher
Bibliothek was zu finden ist. Wie erfahre ich welche Bibliohek ich einbinden muss.

h2so4kmno3
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
24. Jan 2011, 20:11
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

naja, wenn man mit ADO arbeiten möchte, ist es wohl sinnvoll, in der Liste nach allem zu suchen, was wie "ADO" aussieht. Aber noch sinnvoller ist es, zu einer Bibliothek einfach die reichlich vorhandenen Dokus zu lesen - und eine Suchmaschine beantwortet Fragen wie diese wohl zigtausendmal.

Der Weg geht ja auch für gewöhnlich umgekehrt: Erst interessiere ich mich für die Idee, dann schaue ich, welche Lösungen/Bibliotheken es dafür gibt, die möglichst allgemein verfügbar sind, dann lese ich die Dokus/Beispiele und dann fange ich an zu programmieren. Und zu diesem Zeitpunkt weiß ich bereits, welche Bibliothek ich einbinden muß, um das gewünschte zu erreichen.

Late Binding ist natürlich auch eine Möglichkeit, dafür muß man aber auf compilersicheren Code verzichten - Fehler treten erst bei Laufzeit auf und Objekte und deren Eigenschaften/Methoden sind über IntelliSense bzw. Objektkatalog nicht einsehbar, ebenso keine Online-Hilfe (wenn man z.B. die Excel-Bibliothek einbindet, steht einem auch die komplette Excel-Hilfe in Access zur Verfügung). Man muß dann schon genau wissen, was man tut und mit welchen Parametern man welche Funktion aufrufen kann.

Gruß

Christian
Gast



Verfasst am:
24. Jan 2011, 20:58
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Zitat:
Man muß dann schon genau wissen, was man tut
Man könnte z.B. die bedingte Compilierung verwenden, um Early Binding und dessen Vorteile bei der Entwicklung und um Late Binding im Arbeitsbetrieb zu nutzen:
Code:
Option Explicit

#Const conLateBinding = False

Sub IrgendeineProzedur()
    'Dim IrgendwasFürProzedur
    ' Weiche für Late/Early Binding über bedingte Compilierung
#If conLateBinding Then
    ' "Late Binding"
    Dim oCon As Object
    Dim oRst As Object
   
    Set oCon = CreateObject("ADODB.Connection")
    Set oRst = CreateObject("ADODB.Recordset")
#Else
    ' "Early Binding"
    ' Verweis auf Microsoft ActiveX Data Objects 2.X Library notwendig
    Dim oCon As New ADODB.Connection
    Dim oRst As New ADODB.Recordset
#End If
   
    ' die eigentlichen Anweisungen
Wenn eine Bibliothek etwa auf dem Zielsystem gar nicht installiert ist oder in einer anderen Version vorliegt, so bekommt man Probleme mit dem VBA-Verweis, der dann als "NICHT VORHANDEN" markiert sein wird, und das gesamte VBA-Projekt kann möglicherweise nicht mehr ausgeführt werden. Daher erzielt man mit Late Binding eine höhere Arbeitssicherheit, insbesondere wenn man seine Anwendung weitergibt und diese in fremden (unbekannten) Umgebungen arbeiten sollen.
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
24. Jan 2011, 23:18
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

auch wenn das mit den bedingten Compileranweisungen eine Möglichkeit ist für Late/Early Binding Umschaltung - das eigentliche Problem bekommst Du so sicherlich nicht gelöst.

Wenn eine Bibliothek auf einem Zielrechner nicht installiert ist, hilft auch kein Late Binding - was nicht da ist, kann auch nicht verwendet werden. Und wenn es dort in einer anderen Version vorhanden ist, kann man Glück haben und es läuft - oder Pech, weil die benötigte Funktion in der anderen Version z.B. noch nicht vorhanden war. Von daher erhöht Late Binding meiner Meinung nach die Arbeitssicherheit in keiner Weise.

Wenn eine Bibliothek nicht da ist, muß sie installiert werden, wenn es die falsche Version ist, u.U. auch. Ansonsten wundert man sich über Fehlfunktionen, deren Ursache aufgrund von nicht vorhandenen Referenzen auch nicht immer leicht gefunden werden kann.

Externe Bibliotheken (zumindest bei den COM-DLLs) sind halt immer ein gewisses Risiko, aber beispielsweise auf ADO 2.8 kann man sich heutzutage auf so ziemlich jedem Windows XP-Rechner verlassen. Bei Exotenbibliotheken muß man ohnehin auch die DLL mit der eigenen Anwendung zusammen installieren, besonders natürlich bei selbstgeschriebenen.

Gruß

Christian
Gast



Verfasst am:
25. Jan 2011, 00:00
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Bei Late Binding lässt sich aber prüfen, ob das Objekt initialisierbar (und damit eine passende Bibliothek vorhanden) ist und kann ggf. einen geordneten Abbruch der Prozedur einleiten.
Bei compilierten Anwendungen (MDE, ACCDE) und innerhalb einer Runtime ist ein nicht vorhandener Verweis eben nicht sehr günstig - um es gelinde auszudrücken. Ich wiederhole dabei den Hinweis auf weitergegebene Anwendungen.

Bei ADODB ist das Nichtvorhandensein einer Bibliothek erklärtermaßen kein wirklich wahrscheinliches Problem, das Versionenproblem aber durchaus. Der TE hat seine Eingangsfrage nicht ohne Grund gestellt.
Man sollte sich dabei auf Methoden und Eigenschaften der niedrigsten zu erwartenden Version beschränken, das dürfte klar, bei einer Connection aber auch kein Problem sein.
Zitat:
Wenn eine Bibliothek nicht da ist, muß sie installiert werden, wenn es die falsche Version ist
Das würdest Du auch bei Excel (Du erwähntest es) tun?
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
25. Jan 2011, 00:38
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

auch bei eingebundenen Referenzen läßt sich ein Broken Link prüfen und darauf entsprechend reagieren.

Und nein - ich will nicht mit uralten Objektbibliotheken arbeiten, nur um maximal kompatibel zu sein. Ich möchte auch die neuen Funktionen nutzen können, wenn sie für meine Anwendung interessant sind (und ganz von den Funktionen ab sind sie auch üblicherweise bugfreier, da länger entwickelt).

Excel muß nicht installiert werden, um eine Excel-Objektbibliothek verwenden zu können. Diese ist Bestandteil einer Office-Installation und damit i.d.R. auch auf einem Rechner vorhanden, der Access verwendet, und sei es nur die Runtime. Darüber hinaus kenne ich mein "Zielpublikum" i.d.R., wenn ich eine Anwendung für Office 2007 schreibe, die Spezialitäten von Office 2007 verwendet, erwarte ich nicht, daß ein Anwender meine Anwendung auf einem Office 2003 verwendet - ansonsten hätte ich eine Anwendung für 2003 entwickelt, die entsprechend zu diesem kompatibel ist.

Aber keine Sorge - ich will Dich gar nicht überzeugen, verwende ruhig Late Binding, wenn's Dir Spaß macht. Ich persönlich bin da restriktiver und sage, wenn's nicht läuft, hat der Anwender ein Problem und es muß auf dem Rechner des Anwenders behoben werden... Razz

Ich schreibe aber auch Datenbanken für Firmenumgebungen, bei denen homogene Versionen (in einer gut gepflegten IT) normal sind, ich schreibe keine Datenbanken zum Direktverkauf an beliebige Endanwender mit unbekannten Zielsystemen.

Gruß

Christian
Gast



Verfasst am:
25. Jan 2011, 01:06
Rufname:

AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Zitat:
ich schreibe keine Datenbanken zum Direktverkauf an beliebige Endanwender mit unbekannten Zielsystemen
Diese Blickrichtung, so schön sie auch sei, ist halt nicht die ultimativ einzige (ich verweise noch mal an die Eingangsfrage des TE), sondern eine mögliche. Dabei darf man auch das "beliebig" relativieren und das "unbekannt" in nicht kontrollierbar wandeln.
Zitat:
ich schreibe ...
Mancher hat andere Ausgangsbedingungen und Notwendigkeiten, wo ein anderes ICH eine untergeordnete Rolle spielt. Man könnte zumindest danach fragen und nicht eigene Gegebenheiten zwingend voraussetzen.
Zitat:
uralten Objektbibliotheken ... maximal kompatibel
Verzerren, übertreiben, notfalls irgendwas unterstellen ... es kann nur einen geben, der Recht hat. Hast Du das nötig?
Ich glaube: Eigentlich nicht.

Ergänzung: Microsoft (auch ein starkes ICH) hat mit Win7 den XP-Mode eingeführt. Vermutlich, weil auch Business-Partner nicht jeden Versionssprung mitmachen wollen und/oder können ...
Bitsqueezer
Office-VBA-Programmierer


Verfasst am:
25. Jan 2011, 12:00
Rufname:


AW: ADODB Connection. Welche Klassenbibliothek brauche ich d - AW: ADODB Connection. Welche Klassenbibliothek brauche ich d

Nach oben
       Version: Office 2010

Hallo,

irgendwie scheinen Dir diese kleinkarierten Diskussionen ja Spaß zu machen - ist ja nicht das erste Mal (gewisse Leute kann man an ihrem Schreibstil auch ohne die höflichere Unterschrift erkennen).

Dabei solltest Du vielleicht mal die Texte richtig lesen, ich schrieb nirgendwo, daß meine Aussagen die einzige "ultimativ richtige" Möglichkeiten sind, ich schrieb die objektiven Möglichkeiten und in meinem letzten Posting die Variante, wie ich es persönlich handhabe. Wo habe ich geschrieben, daß es jeder andere auch so machen muß?

Aber wenn Dein Ego das nötig hat, mir Dinge zu unterstellen, die gar nicht da sind - wie Du magst. Mich langweilt das, meine Zeit ist mir dazu zu schade und darum beende ich die Diskussion hiermit für mich. Du kannst ja weiter Deine kleinen Sticheleien ablassen, wenn's Dir Spaß macht.

Uuund tschüß.

Christian
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Suchen mit Kombifeld (Brauche Hilfe) 1 Mr.Doo 81 14. Mai 2012, 08:20
KlausMz Suchen mit Kombifeld (Brauche Hilfe)
Keine neuen Beiträge Access Tabellen & Abfragen: Ich brauche einen SQL-Union-Code 7 frodo111 386 08. Sep 2010, 09:55
frodo111 Ich brauche einen SQL-Union-Code
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche Hilfe für eine Abfrage mit Datumswerten 7 Gast 397 17. Aug 2010, 20:06
Gast Brauche Hilfe für eine Abfrage mit Datumswerten
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche Hilfe bei Staffelpreisen! 9 mikewolfi 396 25. Mai 2010, 11:23
KlausMz Brauche Hilfe bei Staffelpreisen!
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche auto. Zähler in Tabelle mittels SQL o. DAO 19 Danny G. 5458 26. Jul 2009, 05:40
Willi Wipp Brauche auto. Zähler in Tabelle mittels SQL o. DAO
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche Hilfe wg Normalisierung und Tabellenerstellungsabfra 4 barongsay 496 28. Mai 2009, 13:35
barongsay Brauche Hilfe wg Normalisierung und Tabellenerstellungsabfra
Keine neuen Beiträge Access Tabellen & Abfragen: brauche dringend hilfe! access newbie 1 tina86 402 09. Apr 2008, 17:05
MAPWARE brauche dringend hilfe! access newbie
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche hilfe beim umstrukturieren einer Tabelle 1 xtra 405 22. Jun 2007, 02:06
Willi Wipp Brauche hilfe beim umstrukturieren einer Tabelle
Keine neuen Beiträge Access Formulare: Taschengeldübersicht (Brauche dringend hilfe) 4 Imo-Parceval 1803 15. Sep 2006, 17:54
derArb Taschengeldübersicht (Brauche dringend hilfe)
Keine neuen Beiträge Access Tabellen & Abfragen: hallo, brauche dringend hilfe beim Abspeichern von der Tabel 1 Gast 486 06. Aug 2006, 13:11
rita2008 hallo, brauche dringend hilfe beim Abspeichern von der Tabel
Keine neuen Beiträge Access Tabellen & Abfragen: Brauche noch Verbesserungsvorschläge + Ausbauhilfe 3 GandalfTCM 600 21. März 2006, 16:25
Willi Wipp Brauche noch Verbesserungsvorschläge + Ausbauhilfe
Keine neuen Beiträge Access Formulare: Job- /Projektangebot Brauche Access-Maske 0 Mephisto123 592 15. Feb 2006, 16:44
Mephisto123 Job- /Projektangebot Brauche Access-Maske
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Web Editor Forum