Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler 13 - Typen unverträglich

Forumthread: Laufzeitfehler 13 - Typen unverträglich

Laufzeitfehler 13 - Typen unverträglich
04.03.2003 13:43:15
Stefan
Hallo Forum,

mein Problem besteht nach wie vor in der Update-Geschichte (Access-Datenbank-Update mit Hilfe einer Excel-Datei).
Zuerst ein Schnipsel aus meinem Code:

Dim DB As Database
Dim Tabelle As Recordset

Set DB = OpenDatabase(DBPfad & "Router.mdb")
Set Tabelle = DB.OpenRecordSet("Daten")
--> Genau hier bringt er den Fehler, versteh ich nicht die Tabelle "Daten" existiert aber in Access, was kann da der
Grund dafür sein?

Grüße Stefan.

P.S. Danke schon mal für die Info´s

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
warum antwortet mir keiner?
04.03.2003 14:03:01
Stefan

Hallo Forum,

brauche dringend Hilfe zu meinem Problem, selbst die kleinsten Hinweise könnten schon hilfreich sein.

Danke Euch.

Gruß STefan.

Fehler gefunden -> hier die Lösung
04.03.2003 15:33:41
Stefan

Hallo,

ich habe den Fehler gefunden. Den Fehler kann man ganz einfach beheben, indem man wie im meinem Beispiel speziell auf die gewünschte Methode verweist, also nicht:

dim Tabelle as Recordset

sondern:

dim Tabelle as DAO.Recordset (für DAO)
dim Tabelle as ADODB.Recordset (für ADO)

Folgende Verweise müssen in Excel gegeben sein, dass die Fehlermeldung nicht erscheint:

Microsoft ActiveX Data Objects 2.1 Library
DAO 3.6 Objektbibliothek

Gruß Stefan

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Laufzeitfehler 13 - Typen unverträglich in Excel beheben


Schritt-für-Schritt-Anleitung

Um den Laufzeitfehler 13 - Typen unverträglich in Excel zu beheben, folge diesen Schritten:

  1. Überprüfe den Code: Stelle sicher, dass die Deklarationen der Variablen korrekt sind. Wenn Du mit DAO oder ADO arbeitest, achte darauf, den entsprechenden Typ korrekt anzugeben:

    Dim Tabelle As DAO.Recordset ' für DAO
    Dim Tabelle As ADODB.Recordset ' für ADO
  2. Setze die Verweise: Gehe in den Visual Basic-Editor (VBE) und stelle sicher, dass folgende Verweise hinzugefügt sind:

    • Microsoft ActiveX Data Objects 2.1 Library
    • DAO 3.6 Objektbibliothek

    Du kannst dies unter Extras -> Verweise überprüfen und die benötigten Bibliotheken aktivieren.

  3. Fehlermeldung testen: Führe den Code nach den Anpassungen erneut aus. Der Fehler sollte nun behoben sein.


Häufige Fehler und Lösungen

Hier sind einige häufige Fehler, die zu Laufzeitfehler 13 führen können, und deren Lösungen:

  • Falscher Datentyp: Wenn Du versuchst, einen Datentyp zu verwenden, der nicht mit dem erwarteten Typ übereinstimmt, tritt dieser Fehler auf. Überprüfe die Datentypen in Deinem Code sorgfältig.

  • Nicht vorhandene Tabelle: Der Fehler kann auch auftreten, wenn die angegebene Tabelle in der Access-Datenbank nicht existiert oder falsch benannt ist. Stelle sicher, dass die Tabelle "Daten" tatsächlich vorhanden ist.

  • Falsche Verweise: Wenn die benötigten Bibliotheken nicht referenziert sind, kann Excel die Typen nicht korrekt erkennen. Vergewissere Dich, dass alle erforderlichen Verweise gesetzt sind.


Alternative Methoden

Falls das Problem weiterhin besteht, kannst Du folgende alternative Methoden ausprobieren:

  • Verwendung von Option Explicit: Füge am Anfang Deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Tippfehler zu vermeiden.

  • Debugging-Werkzeuge: Nutze die Debugging-Tools in VBA. Setze Haltepunkte und überprüfe die Werte der Variablen, um herauszufinden, wo der Fehler auftritt.

  • Überprüfung der Access-Datenbank: Stelle sicher, dass die Access-Datenbank nicht beschädigt ist. Möglicherweise musst Du die Datenbank reparieren.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Laufzeitfehler 13 in verschiedenen Szenarien vermeiden kannst:

  1. Zugriff auf eine Tabelle:

    Dim DB As DAO.Database
    Dim Tabelle As DAO.Recordset
    
    Set DB = OpenDatabase(DBPfad & "Router.mdb")
    Set Tabelle = DB.OpenRecordset("Daten")
  2. Verwendung von ADO:

    Dim conn As ADODB.Connection
    Dim Tabelle As ADODB.Recordset
    
    Set conn = New ADODB.Connection
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPfad & "Router.mdb;"
    Set Tabelle = New ADODB.Recordset
    Tabelle.Open "Daten", conn, adOpenKeyset, adLockOptimistic

Tipps für Profis

Hier sind einige Tipps, die Dir helfen können, laufzeitfehler 13 typen unverträglich effizient zu vermeiden:

  • Dokumentiere Deinen Code: Halte fest, was jede Zeile Deines Codes bewirken soll. Dies macht das Debugging einfacher.

  • Verwende Error Handling: Implementiere Fehlerbehandlungsroutinen, um nicht nur den Fehler zu erkennen, sondern auch darauf reagieren zu können:

    On Error GoTo Fehlerbehandlung
    ' Dein Code hier
    Exit Sub
    
    Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  • Halte Deine Excel-Version aktuell: Manchmal können Probleme durch veraltete Softwareversionen verursacht werden. Aktualisiere regelmäßig Deine Microsoft Excel-Version.


FAQ: Häufige Fragen

1. Was ist der Laufzeitfehler 13?
Der Laufzeitfehler 13 tritt auf, wenn in VBA ein Typenkonflikt besteht, d.h. ein Wert wird einem Datentyp zugewiesen, der nicht kompatibel ist.

2. Wie kann ich den Laufzeitfehler 13 beheben?
Überprüfe die Deklarationen Deiner Variablen und stelle sicher, dass Du die richtigen Verweise in Excel gesetzt hast.

3. Was sind DAO und ADO?
DAO (Data Access Objects) und ADO (ActiveX Data Objects) sind Technologien, die den Zugriff auf Datenbanken in Microsoft Office-Anwendungen ermöglichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige