MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 16.08.2018, 15:05   #1
Chaotikos
Neuer Benutzer
Neuer Benutzer
Hinweis MySQL - Verbindung aus Excel mit Treiber ODBC

Hallo zusammen,

ich verzweifle grad da ich nix aktueles finde.
Wie verbinde ich richtig mit dem ODBC Treiber?

Hab im ODBC-Datenquellen-Adminstrator (64-Bit) unter Treiber folgende:
MySQL ODBC 8.0 ANSI Driver (Version 8.00.12.00)
MySQL ODBC 8.0 Unicode Driver (Version 8.00.12.00)
gefunden, aber die nimmt er nicht wenn ich für str_Datenbank folgendes nehme: "MySQL ODBC 8.0 ANSI Driver" auch das andere klappt nicht.

Ich stehe auf dem Schlauch.

Code:

Sub DatenVomSQLServerBeziehen()
' #################################################################################
' Zuvor bitte die Library:
' --> Microsoft ActiveX Data Objects 2.8 Library
' aktivieren!
' #################################################################################

' Allgemeine Deklaration:
    'Logindaten
    Dim str_Servername As String
    Dim str_Benutzer As String
    Dim str_Passwort As String
    Dim str_Datenbank As String
    Dim str_ODBCTreiber As String
    
        str_Servername = LoginDaten.Range("B2").Value
        str_Benutzer = LoginDaten.Range("B3").Value
        str_Passwort = LoginDaten.Range("B4").Value
        str_Datenbank = LoginDaten.Range("B5").Value
        str_ODBCTreiber = LoginDaten.Range("B6").Value
        
    'Verbindung deklarieren als ADO (DAO wäre mehr für MsAccess)
    Dim oConn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim fld As ADODB.Field
    
    Dim mysql As String
    Dim row As Integer
    Dim Col As Integer
'    Dim ws As ThisWorkbook
'    Set ws = ThisWorkbook

'    Dim WS As Worksheet
'    Set WS = Worksheets("Sheet1")

    Application.ScreenUpdating = False
'    ActiveSheet.Unprotect
    Set oConn = New ADODB.Connection
    Set rs = New ADODB.Recordset

'###############################################################################
' MySQL - Anweisung ab hier:

    mysql = "Describe MeineTabelle;"
    
'###############################################################################
    
' Verbindung zu Datenbank herstellen:
'================================================================================================================
   oConn.ConnectionString = "Driver={" & str_ODBCTreiber & "}" & _
                            ";server=" & str_Servername & _
                            ";uid=" & str_Benutzer & _
                            ";pwd=" & str_Passwort & _
                            ";database=" & str_Datenbank
   oConn.ConnectionTimeout = 30
   oConn.Open
   
' Verbindungsaufbau feststellen
   If oConn.State = adStateOpen Then
      MsgBox "Verbindung zur Datenbank erfolgreich!"
   Else
      MsgBox "Verbindung zur Datenbank fehlgeschlagen"
   End If
   
   
'================================================================================================================
    
' SQL Code auf Datenbank anwenden und öffnen des Recordset (Virtuelle Tabelle in den Zwischenspeicher legen):
    rs.Open mysql, oConn

'Abfangroutine für leeren Recordset:
    If rs.EOF Then
        MsgBox "Kein Datensatz gefunden!"   'EOF = End Of File
        rs.Close
        oConn.Close
        Exit Sub
    End If

' #####################################################################################
' Tabelle erstellen in Excel aus MySQL Datenbank mittels eines SQL Codes (mysql)
' #####################################################################################
    ' Zielposition um die gefilterte Tabelle (siehe: mysql) aus der Datenbank zu erstellen:
    row = 8
    Col = 2
    ' Überschrift zeile erstellen:
    For Each fld In rs.Fields
        Output.Cells(row, Col).Value = fld.Name
        Col = Col + 1
    Next
    rs.MoveFirst
    row = row + 1
    ' Tabelle füllen mit Datenreihen
    Do While Not rs.EOF
        Col = 1
        For Each fld In rs.Fields
            Output.Cells(row, Col).Value = fld
            Col = Col + 1
        Next
        row = row + 1
        rs.MoveNext
    Loop


' Verbindung zu Datenbank schliessen (Wichtig!)
'================================================================================================================
    rs.Close
    oConn.Close
'================================================================================================================

End Sub
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 09:33   #2
fraeser
MOF Meister
MOF Meister
Standard

Nur kurz überflogen:

str_Datenbank muss doch der Name der DB auf dem MySQL-Server sein.
In str_ODBCTreiber dann z.B."MySQL ODBC 8.0 ANSI Driver"

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 09:45   #3
fraeser
MOF Meister
MOF Meister
Standard

Das sind übrigens die Connectionstrings ODBC zu MySQL, die ich gefunden habe:

https://www.connectionstrings.com/my...ctor-odbc-5-2/

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 11:57   #4
hcscherzer
MOF Guru
MOF Guru
Standard

Hast Du die ODBC App aus dem Ordner SYSWOW genommen?

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 12:43   #5
Chaotikos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

ja sry vertipper. str_ODBC.. war auch gemeint.

Die DSN wenn ich sie teste macht eine Verbindung. (1.png)

Wenn ich das Makro in VBA nutze bekomme ich (2.png)

Gruß
Angehängte Grafiken
Dateityp: png 1.png (28,8 KB, 3x aufgerufen)
Dateityp: png 2.png (5,3 KB, 2x aufgerufen)
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 12:44   #6
Chaotikos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

kann es sein das MySQL anbindung schwieriger ist in 2013 Excel als in 2016?
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 12:46   #7
Chaotikos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

SYSWOW ?

Habs nach OBDC Treiber in such leiste eingegeben und kam dann zum Manager.
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 14:35   #8
Chaotikos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hab im Netzt folgendes noch gefunden, und da noch eine frage.
"Einrichten einer 32bit-ODBC-Quelle auf einem 64bit-System
28. März 2015 · Kategorie: Programmierung

Versucht man auf einem 64bit System mit 32bit Software auf eine ODBC-Quelle zuzugreifen, so erhält man statt der erhofften Daten lediglich eine Fehlermeldung:

connection failed: [Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf. (SQL-IM014)

Auf den ersten, zweiten und dritten Blick bietet Windows auch keine Möglichkeit, die gewünschte Architektur der Datenquelle anzugeben. Der Trick liegt im expliziten Aufruf des ODBC-Datenquellen-Administrators „odbcad32.exe“ im Pfad „C:WindowsSysWOW64“, auf den standardmäßig kein Link im Startmenü gesetzt wird.

Da die Verwaltungsoberflächen für 32bit und 64bit nicht gekennzeichnet sind, hilft im Zweifelsfall ein Blick in die Prozessliste des Taskmanagers: hat die dort aufgefühte „odbcad32.exe“ den Zusatz „*32“, so ist aktuell die Verwaltung für 32bit-Datenquellen gestartet. Fehlt dieser Zusatz, ist die Verwaltung für 64bit Datenquellen aus dem Verzeichnis „C:WindowsSystem32“ aktiv."

Ich habe ein 64bit system, habe 64bit odbc treiber installiert und habe 32bit Excel Version. kann es sein das ich da die 32bit version nutzen muss?


Vielleicht ist das die Lösung? Muss ich den anderen Treiber deinstallieren. Aber die MySQl Workbench braucht diesen doch schon, oder?

Gruß und schönes Wochenende.
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 15:23   #9
fraeser
MOF Meister
MOF Meister
Standard

Ich habe leider nur max. Excel 2010 und keinen MySQL-Server...

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 16:21   #10
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat:

expliziten Aufruf des ODBC-Datenquellen-Administrators „odbcad32.exe“ im Pfad „C:\Windows\SysWOW64“

Genau den meinte ich.
btw: immer zwei Backslashes hier eingeben, damit einer dargestellt wird.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 16:28   #11
fraeser
MOF Meister
MOF Meister
Standard

@Chaotikos:
Hast Du es mal per OLEDB versucht?

Schau hier...

https://www.connectionstrings.com/mysql/

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.08.2018, 10:25   #12
Chaotikos
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Weinen

Problem gelöst, es war tatsächlich der 32-Bit Treiber der nötig war.
Dann habe ich die DSN auf dem System eingerichtet und konnte direkt im Excel die Daten aus der Datenbank abrufen.

Die Bezeichnung zum Download des ODBC Treiber mit win64 und win32 sollte eher heißen MsOffice32 (= win32).

Hat mich einige stunden fluchen gekostet.
Chaotikos ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:13 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.