PRB: ADO: Kompilierungsfehler: benutzerdefinierter Typ nicht definiert


Problembeschreibung


Wenn Sie Ihr ADO-Projekt kompilieren, wird die folgende Fehlermeldung angezeigt:
Kompilierungsfehler: nicht definierter benutzerdefinierter Typ
Dies kann entweder auf einem Connection-oder Command-Objekt erfolgen.

Ursache


Möglicherweise haben Sie auf eine der folgenden Bibliotheken anstatt auf die Microsoft ActiveX Data Objects (ADODB)-Typbibliothek verwiesen:
  • Microsoft ActiveX Data Objects Recordset (Ador) Type Library.-oder-
  • Microsoft ActiveX Data Objects (mehrdimensionale) Typ-Bibliothek (ADOMD).

Fehlerbehebung


Entfernen Sie den falschen Typbibliotheksverweis aus Ihrem Projekt, und fügen Sie einen Verweis auf die richtige Typbibliothek hinzu.

Status


Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen


Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie ein neues Projekt, und fügen Sie dem Formular eine Befehlsschaltfläche (Command1) hinzu.
  2. Fügen Sie einen Verweis auf die Microsoft ActiveX Data Objects-Recordset-Bibliothek hinzu.
  3. Fügen Sie dem Formular den folgenden Code hinzu:
       Private Sub Command1_Click()   Dim cn As ADODB.Connection   End Sub
  4. Führen Sie das Projekt aus, und klicken Sie auf die Befehlsschaltfläche. Der Fehler wird angezeigt.
  5. Entfernen Sie den Verweis, und fügen Sie einen Verweis auf die Microsoft ActiveX Data Objects-Bibliothek hinzu.
  6. Klicken Sie auf die Befehlsschaltfläche. Der Fehler wird nicht angezeigt.
Hinweis:
  • Microsoft Access-Benutzer müssen ADODB verwenden. Connection, um Verwechslungen mit dem DAO-Verbindungsobjekt zu vermeiden.
  • Wenn das IntelliType-Feature aktiviert ist, sollten Sie feststellen, dass die Verbindung nicht als gültiges Objekt mit der Ador-Typbibliothek, sondern mit der ADODB-Typbibliothek angezeigt wird. Dies ist ein guter Hinweis darauf, dass Sie nicht die richtige Typbibliothek referenziert haben.
  • Dieser Fehler kann auch auftreten, wenn auf Objekte in anderen Typbibliotheken verwiesen wird, die nicht referenziert werden.