Keresés

Új hozzászólás Aktív témák

  • ulrik19

    tag

    válasz sonar #5918 üzenetére

    Kell hozzá a Microsoft ActiveX Data Objects 2.8 Library (Tools/References).

    Értelemszerűen adatbázisnév, felhasználónév és jelszó a ConnectionString-ben. Illetve ugyanitt meg kell adni az adott MySQL ODBC driver-t. (Nálam 5.1, de az adott gépen persze lehet más. Ha rosszat adtok meg, nem találja meg.)

    Ebben a példában 3 mezőt ad vissza a lekérdezés, aztán minden visszaadott adatot kinyom az első sheet-re. Profin persze kellene bele hibakezelés stb.

    Option Explicit

    Public conn As ADODB.Connection
    Public rs As Recordset
    Public sh1 As Worksheet
    Public SQL As String

    Public Sub mySQL_kapcsolat()
    Dim c As Integer

    Set sh1 = Excel.Worksheets(1)
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost; DATABASE=adatbazisnev;UID=anonymus;PWD=; OPTION=3"
    conn.Open

    SQL = "select * from tbl_tablanev"

    rs.CursorLocation = adUseServer
    rs.Open SQL, conn
    rs.MoveFirst

    c = 1
    Do Until rs.BOF Or rs.EOF
    sh1.Cells(c, 1).Value = rs.Fields(0)
    sh1.Cells(c, 2).Value = rs.Fields(1)
    sh1.Cells(c, 3).Value = rs.Fields(2)
    rs.MoveNext
    c = c + 1

    If rs.EOF Then
    rs.MoveFirst
    Exit Sub
    End If
    Loop

    End Sub

    [ Szerkesztve ]

    ...az élet igazságos, mert pl. akinek rövidebb az egyik lába, annak hosszabb a másik...

  • Fire/SOUL/CD

    félisten

    válasz sonar #5918 üzenetére

    Hali!

    Látom ulrik19 kolléga megelőzött, de ha már én is megírtam, akkor be is rakom. :DDD Ez Microsoft ActiveX Data Objects 6.0 Library bővítménnyel és adatkapcsolattal, valamint mysql connector ODBC bővítménnyel megtámogatva van elkészítve. Természetesen kifogástalanul működik. Egy excel_mysql nevű adatbázis, test nevű tábláján megy végig és írja ki sorban a mezőket.

    Private Sub CommandButton1_Click()

    Dim FSCD_SQLConnection As ADODB.Connection
    Dim FSCD_Recordset As ADODB.Recordset

    Dim FSCD_SQLConnectionString As String
    Dim FSCD_SQLCommand As String
    Dim FSCD_MYSQL_Table As String

    On Error GoTo FSCD_ErrorHandler

    FSCD_MYSQL_Table = "test"

    FSCD_SQLConnectionString = "Provider=MSDASQL.1;Persist Security Info=True;" & _
    "User ID=root;Extended Properties='';DSN=Excel_MySQL_Tutorial;" & _
    "UID=root;SERVER=127.0.0.1;DATABASE=excel_mysql;PORT=3306;'';" & _
    "Initial Catalog=excel_mysql;Initial Catalog=excel_mysql"

    Set FSCD_SQLConnection = New ADODB.Connection
    FSCD_SQLConnection.ConnectionString = FSCD_SQLConnectionString
    FSCD_SQLConnection.Open

    FSCD_SQLCommand = "SELECT * FROM " & FSCD_MYSQL_Table
    Set FSCD_Recordset = New ADODB.Recordset
    FSCD_Recordset.Open FSCD_SQLCommand, FSCD_SQLConnection

    FSCD_Recordset.MoveFirst
    While Not FSCD_Recordset.EOF
    MsgBox FSCD_Recordset.Fields("mező1").Value
    MsgBox FSCD_Recordset.Fields("mező2").Value
    FSCD_Recordset.MoveNext
    Wend
    FSCD_Recordset.Close
    FSCD_SQLConnection.Close

    Exit Sub

    FSCD_ErrorHandler:

    MsgBox "Error:" & Err.Description, vbCritical, "Fire/SOUL/CD"

    End Sub

    Fire.

    [ Szerkesztve ]

    Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

Új hozzászólás Aktív témák