welche dll muss ich noch registrieren

Diskutiere welche dll muss ich noch registrieren im Programmierung Forum im Bereich Software Forum; Hallo zusammen, ich habe eine Access 03 db die per ODBC auf eine MySQL 5.0 Server zugreift. beim starten und einloggen der DB werden die MySQL...
S

spite

Threadstarter
Dabei seit
05.11.2008
Beiträge
108
Ort
CH
Hallo zusammen,
ich habe eine Access 03 db die per ODBC auf eine MySQL 5.0 Server zugreift. beim starten und einloggen der DB werden die MySQL Tabellen per VBA eingebunden.

Code:
    'Alle Tabellen löschen
    Dim aoTable As AccessObject
    For Each aoTable In CurrentData.AllTables
       'lokale Systemtabellen nicht löschen
        If (Left(aoTable.Name, 4) <> "loc_") And (Left(aoTable.Name, 4) <> "MSys") And (Left(aoTable.Name, 7) <> "Eingang") And (Left(aoTable.Name, 5) <> "liste") Then
            DoCmd.DeleteObject acTable, aoTable.Name
        End If
    Next aoTable

    'Liste aller Server-Tabellen laden
    Dim cnn As New adodb.Connection
    cnn.Open "Provider=MSDASQL.1;Data Source=ifund;Extended Properties=""DSN=ifund;DATABASE=" & g_sDatenbank & ";""", g_sUser, g_sPassword
    Dim rsTableNames As New adodb.recordSet
    Set rsTableNames = cnn.Execute("SHOW TABLES;")

    'Tabellen verknüpfen
    Dim catDB As ADOX.Catalog
    Dim tblNewTable As ADOX.table

    Set catDB = New ADOX.Catalog
    catDB.ActiveConnection = CurrentProject.Connection

    While Not rsTableNames.EOF

        'vgl. office programmierhandbuch s 717ff
        Set tblNewTable = New ADOX.table
        With tblNewTable
            .Name = rsTableNames.Fields(0).value
            Set .ParentCatalog = catDB
            .properties("Jet OLEDB:Create Link") = True
            .properties("Jet OLEDB:Link Provider String") = "ODBC;DSN=ifund;USER=" & g_sUser & ";PASSWORD=" & g_sPassword & ";DATABASE=" & g_sDatenbank & ";" '"ODBC;DSN=ifund;" '
            .properties("Jet OLEDB:Remote Table Name") = rsTableNames.Fields(0).value
        End With
        catDB.Tables.Append tblNewTable '<-- hier kommt der Fehler: ODBC-Aufruf Fehlgeschlagen

        rsTableNames.MoveNext
    Wend

Auf allen Maschinen im Büro funktioniert die DB ausser auf einem Arbeitsplatz. Der Fehler war der, dass die Bibliotheken msADOX.dll sowie msado15.dll nicht in der Registry eingetragen waren. Dies habe ich per regsvr32 [BIBLOTHEK] nachgeholt.

Trotzdem kommt der Fehler, dass der ODBC-Aufruf fehlgeschlagen ist obwohl ich die ODBC Schnittstelle von MySQL neu installiert hatte.

Die Connection steht nun aber die Tabellen wollen nicht eingebunden werden. der Code stimmt, da dies auf den anderen Rechnern funktioniert. ich vermute ich muss eine Bibliothek noch registrieren aber welche, hat jemand von euch eine Ahnung?
danke spite
 
Zuletzt bearbeitet:
S

spite

Threadstarter
Dabei seit
05.11.2008
Beiträge
108
Ort
CH
Ich habe den Fehler gefunden, doch keine Lösung :cheesy
Wenn ich die Tabellennamen auslese, dann werden diese nur als Strings in "?" in der Länge der Tabellen name ausgegeben z.B. "???????????". Damit kann die ODBC Schnittstelle nichts anfangen und die Tabelle wird nicht verbunden und eine Fehlermeldung erscheint :mad
Hatte jemand von euch auch schon mal so ein Problem? Was ist die Abhilfe oder in welche Richtung soll ich suchen?
 
B

bagira

Dabei seit
29.06.2006
Beiträge
298
Ort
in Deutschland.
wenn die via ODBC eine DB aufmachen willst, dann muss der DB-Name schon übergeben werden.

Was steht in der VAR g_sDatenbank drinnen ? Wenn da nur ??? drinnen sind, dann kann das nicht funktionieren. Das gleiche gilt für User und PW.

Diese Sachen definiert man im ODBC Treiber zu deiner DB.
 
S

spite

Threadstarter
Dabei seit
05.11.2008
Beiträge
108
Ort
CH
In den Variablen stehen die werte klar drin und sogar richtig.
  • g_sDatenbank = DB Name
  • g_sUser = Username
  • g_sPassword = Passwort
Warum es die Tabellennamen nicht lesen kann ist mir ein Rätsel. Auf allen anderen Rechnern funktioniert dies ausser auf einen, dann kann es nicht am Code liegen.
Was muss ich noch für die ODBC Verbindung berücksichtigen? Ich vermute mal, dass ich irgendeine Bibliothek in die Registry einbinden muss.
 
S

spite

Threadstarter
Dabei seit
05.11.2008
Beiträge
108
Ort
CH
ich versuchte dies jetzt zu umgehen, indem ich die Tabelle der Tabellen als pass through Abfrage realisierte, doch das Problem bleibt :wacko
Es muss nun meiner Meinung was mit dem Charset sein aber wo und wie sehe und behebe ich das?
 
Thema:

welche dll muss ich noch registrieren

welche dll muss ich noch registrieren - Ähnliche Themen

BSOD KMODE_EXCEPTION_NOT_HANDLED in PpmPerfSelectProcessorState: Hi everyone! I was asked to investigate a KMODE_EXCEPTION_NOT_HANDLED BSOD on a Windows 10 system. Its current (minimal) configuration is...
Error opening ADO Recordset with MSDataShape provider: Since Windows Update 1809 was public for some days, some of our users haved already installed this Windows version. These users are now reporting...
Error opening ADO Recordset with MSDataShape provider: Since Windows Update 1809 was public for some days, some of our users haved already installed this Windows version. These users are now reporting...
How to: Change Windows Update Settings in Windows 10: Windows Update is an service which allows the user to download and install updates. By default, the Windows Update behaivor is set to Automatic...
Excel VBA Textzeile aus Webseite auslesen: HI! Ich würde gerne von einer Webseite: http://logik.phl.univie.ac.at/~chris/gateway/formular-zentral.html nur EINE Textzeile (mit der...
Oben