[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2008
    Beiträge
    4

    VBA ADO 2.x bekommt immer die Meldung "Laufzeitfehler 430"

    Hallo,

    bin derzeit dabei mich in VBA für Excel einzuarbeiten und scheitere bei dem Versuch, per ADO auf DB2/400 Release V5R3 zuzugreifen, egal welche ADO 2.x Version ich per Verweis auch zuordne.

    Der Komponenten-Checker für MDAC liefert die Info, das die Version 2.8 SP1
    registriert ist. Trotzdem, es kommt beim Versuch über F5 im VBA Editor immer die Meldung: Laufzeitfehler '430': Klasse unterstützt keine Automatisierung .....

    Es ist auch egal, wie ich die Verbindungsparameter mitgebe. Es funktioniert einfach nicht.

    Vielen Dank für eine Antwort.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.337
    Prüfe mal per F8 (Einzelschritt) bei welchem Befehl genau der Fehler auftritt.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jun 2008
    Beiträge
    4
    Hallo Herr Fuerchau,

    vielen Dank für die schnelle Antwort.

    Hier ist mein Beispiel:

    Dim conn As New ADODB.Connection

    Dim rec As New Recordset
    Dim ws As Worksheet
    Dim sql$, i&
    Set ws = ThisWorkbook.Worksheets("intro")
    conn.Open "Provider=IBMDA400;" + _
    "Data Source=S65xxxxx;" + _
    "UserID=XXX;" + _
    "Password=xxxxxxx;"
    sql = "SELECT NAME, NACHNA " & _
    "FROM EKA.TESTVBA ORDER BY NACHNA"
    rec.Open sql, conn

    .
    .
    .


    Beim Aufruf conn.Open kommt die Fehlermeldung. Bei der Office Version handelt es sich im übrigen um Office 2002.

    Ich habe es aber auch mit der Angabe einer DSN und UserID/Password per Properties Angabe versucht. Die gleiche Meldung.

    Was mir allerdings auffällt: Die DSN bei den den ODBC-Quellen sind bei den Benutzer DSN angelegt, nicht bei den System-DSN.

    Gruss
    EKA

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.337
    Der Provider IBMDA400 unterstützt keine DSN, da DSN nur für ODBC ist.
    Für ODBC musst du den Provider MSDASQL verwenden (ist hier sowieso besser).

    Dabei ist es unerheblich ob System- oder User-DSN verwendet wird.
    Einzig Datei-DSN führt meistens zu Fehler.

    Ggf. solltest du die Eigenschaft
    conn.properties("Prompt")=adDriverComplete
    verwenden.

    Unter ADO sollten besser die Eigenschaften
    conn.properties("User Id")="MyUser"
    conn.properties("Password")="MyPass"
    benutzt werden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jun 2008
    Beiträge
    4
    Hallo Herr Fuerchau,

    habe es mit den Einträgen versucht:

    Dim conn As New ADO.Connection

    conn.connection = "DSN=MyDSN"
    conn.properties("User ID") = "MyUserID"
    conn.properites("Password")= "MyPwd"

    Gleiche Meldung 430 beim Auf von conn.connection.

    Wenn ich im Forum richtig gelesen habe, kann man bei der ADO Schnittstelle als DSN auch eine ODBC-Verbindung angeben (Siehe Beitrag: Aus Excel Zellenwert an AS400 übertragen, aus November 2007).

    ie kann ich denn überhaupt den Provider IDMDA400 auf meinem PC erkennen? Wird er von Client Access installiert?

    Wenn ich es per ADO nicht hinbekomme, werde ich am Freitag mit einer ODBC-Verbindung weiter testen.

    Vielen Dank für Ihre Unterstützung.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.337
    DSN=XXX bezeichnet IMMER einen gültigen ODBC-Eintrag.

    Ich würde da nochmal die Service-Stufe des ClientAccess überprüfen. Ggf. ist die nicht aktuell.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Jun 2008
    Beiträge
    4
    Das Problem ist gelöst:

    Der ComponentenChecker cc.exe meldete das msado15.dll von ADO 2.81 UNKNOWN sei.

    Ich habe ADO 2.81 über das Internet erneut heruntergeladen und installiert.

    Fehler 430 trat danach noch immer auf.

    Habe dann mit regsvr32.exe "C:\Programme\Gemeinsame Dateien\system\ado\msado15.dll"
    erneut die msado15.dll registriert.

    Danach kamm die Verbindung zustande.

    Herr Fuerchau, nochmals vielen Dank für Ihre Unterstützung,

    Gruss
    EKA

Similar Threads

  1. MS ado und Prepared Command
    By Asti in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 26-10-06, 09:39
  2. Fehler: SQL0302 Umsetzungsfehler / ado
    By Asti in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-08-06, 13:24
  3. ADO (mit C#) auf iSeries - Doku
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 15-03-06, 10:56
  4. PJL Meldung entfernen
    By itc in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 21-06-05, 10:16
  5. Query starten mit VBA
    By rbgies in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 29-11-04, 18:35

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •