VB远程访问MYSQL代码图解

首先需要安装MySQL Connector/ODBC

地址:http://dev.mysql.com/downloads/connector/odbc/

根据自己的系统(运行环境: Win7/XP/Win9x/2000/2003),选择相应的版本,如果页面打不开,可以直接试试下面的下载链接:

http://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.4-win32.msi

http://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.4-winx64.msi

如果安装的时候,弹出下面的警告对话框

说明缺少VC++组件,点击Abort终止,然后去微软官网下载一个安装后再重复刚才的

Microsoft Visual C++ 2010 Redistributable Package

64-bit version:  http://www.microsoft.com/en-us/download/confirmation.aspx?id=14632

32-bit version:  http://www.microsoft.com/en-gb/download/details.aspx?id=5555

安装过程全英文,一路下一步

关于VB链接MYSQL的资料百度一大堆,大多数和下面这种差不多相似,而且是很久以前的代码,使用的时候会报错(-2147467259)

主要的问题在于"DRIVER={MySQL ODBC 5.1 Driver}"这句错了,首先来看看刚才我们安装后的MySQL Connector/ODBC

开始--控制面板--管理工具--数据源(ODBC)

在  用户DSN 选项卡中的表格如果没有发现MySQL字样的,那么就点击右侧的  添加  查看,如下图

发现了两个MySQL的驱动(然后关闭上面的窗口,不用做添加操作等,只是看看)

MySQL ODBC 5.3 ANSI Driver   和  MySQL ODBC 5.3 Unicode Driver  

将上面的名称随便选一个替换到刚才的链接字符试试

我这里测试两个都可以连接上使用,即:

cn.ConnectionString = "DRIVER={MySQL ODBC 5.3 Unicode Driver};Persist Security Info=True;SERVER=... ..."

cn.ConnectionString = "DRIVER={MySQL ODBC 5.3 ANSI Driver};Persist Security Info=True;SERVER=... ..."

下面是工程示例,新建工程,添加textbox和command

Option Explicit
'引用 Microsoft ActiveX Data Objects 2.x Library
Private Sub Command1_Click()
    Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Set cn = ConnMySQL("root", "123456", "test", "192.168.1.101")
    If cn Is Nothing Then
        If Err.Number <> 0 Then
            MsgBox Err.Number & " " & Err.Description, vbOKOnly & "连接MySQL发生错误"
        Else
            MsgBox "连接失败", vbOKOnly & "提示"
        End If
        Exit Sub
    End If
    rs.CursorLocation = adUseClient
    rs.Open "SELECT * FROM ssc_members", cn, adOpenDynamic, adLockOptimistic, adCmdText
    Me.Caption = rs.RecordCount
    If rs.RecordCount > 0 Then
        rs.MoveFirst
        Do Until rs.EOF
            Text1.Text = Text1.Text & rs("username").Value & vbCrLf
            rs.MoveNext
            DoEvents
        Loop
    End If
    cn.Close
End Sub
 '-----------------------------------------------------------------------------------------------------
Public Function ConnMySQL(uid As String, pwd As String, db_name As String, Optional host As String = "127.0.0.1", Optional port As Integer = 3306) As ADODB.Connection
    Dim cn As New ADODB.Connection
    On Error GoTo errline
    cn.Mode = adModeReadWrite
    cn.ConnectionString = "DRIVER={MySQL ODBC 5.3 Unicode Driver};" _
                        & "Persist Security Info=True;" _
                        & "SERVER=" & host _
                        & ";PORT=" & port _
                        & ";DATABASE=" & db_name _
                        & ";UID=" & uid _
                        & ";PWD=" & pwd _
                        & ";OPTION=3"
    cn.Open
    If cn.State = adStateOpen Then
        Set ConnMySQL = cn
    End If
    Exit Function
errline:
End Function

关于远程访问时MYSQL的设置,详见另一篇图解 http://www.cnblogs.com/xiii/p/4890885.html

原文地址:https://www.cnblogs.com/xiii/p/4891166.html