使用VBA连接到在线mySQL数据库

时间:2017-11-09 09:06:24

标签: mysql vba word-vba

目的:

我正在尝试通过VBA连接到数据库(例如与goDaddy托管的网站相关联);使用MS Word。我想通过word模板分发VBA代码,以便其他人也可以连接到我的数据库。

当前理解 - 是否正确?

为了连接到远程mySQL数据库,我必须使用(例如)mySQL Connector / ODBC(available here)配置ODBC数据源?

似乎有一种方法可以在不使用DSN as suggested here的情况下进行连接。

问题:

我一直在尝试使用mySQL Connector工具,并尝试使用我手边的信息对其进行配置。采取的步骤:

  • 从dev.mysql.com下载连接器工具
  • 控制面板>系统&安全>管理工具> ODBC数据源64位
  • 添加主持人:www.mywebsite.com
  • 添加用户:NameOfDataBaseUser
  • 添加pwrd:PWForUser

我得到的印象是我使用了错误的凭据...如果连接成功,我找到了some documentation that said a list of DataBases would be displayed。这告诉我,我应该为主用户使用凭据 - 用户会是什么?

声明

我打算通过VBA连接到在线数据库,但怀疑可能更好地通过php网页间接连接。

如果有人对此有所了解(安全性,易部署性,其他),请告诉我,这可能是一个新问题。其他免责声明,我非常熟悉数据库,但很想学习 - 慢慢地; - )

3 个答案:

答案 0 :(得分:2)

如何使用ODBC将VBA连接到远程mySQL数据库

感谢@EVilliger& @tobifasc对此有所帮助,有许多'如何配置mySQL问题'浮动但没有解决我(更大)的问题。

基本问题 - 我的主机不允许远程连接到数据库,除了来自单个白名单的IP(这看起来相当普遍)。

已回答的问题:

事实证明,您不需要使用连接器配置mySQL连接,但是您需要安装适当的ODBC驱动程序。可在此处找到连接器(带驱动程序):https://dev.mysql.com/downloads/connector/odbc/

我卸载了mySQL Connector,一切似乎都继续工作,直到它没有。结论不要卸载mySQL Connector,除非你有什么要替换它。

要使用的凭据可以是数据库用户,而不是某些提升用户。

对于有兴趣在VBA中设置和试验mySQL的人来说,这是一条前进的道路:

  1. 下载&安装驱动程序(见上文) - 如果安装失败,您可能需要安装vcredist_x64.exe
  2. 设置一个免费的mySQL数据库,我使用了HelioHost:https://www.heliohost.org/(他们也给你你一个域名)
  3. 创建数据库&用户在HelioHost cPanel
  4. 配置远程访问 - 使用通配符%允许所有IP
  5. 将用户添加到数据库
  6. 使用以下代码连接...
  7.   

    接受回答的代码:

    sum_temp

    再次感谢:)

答案 1 :(得分:1)

我目前正在使用Excel进行项目,我已成功连接到远程MySQL数据库。

我正在使用无DSN方法,这也可能适合您:

Set remoteCon = New ADODB.Connection
conStr = "DRIVER={MySQL ODBC 5.3 Unicode Driver};" & _
    "SERVER=myhomepage.com;PORT=3306;DATABASE=mydb;" & _
    "UID=username;PWD=secret"
remoteCon.Open conStr
remoteCon.Execute ("USE mydb;")

为了使其正常工作,您还必须添加引用(在VBA后端):工具>参考文献>检查" Microsoft ActiveX数据对象x.x库"。
您还需要在计算机上安装MySQL ODBC驱动程序(在我的情况下" MySQL ODBC 5.3 Unicode驱动程序")。

然后可以像这样执行查询:

Dim rs As ADODB.Recordset
Set rs = remoteCon.Execute("SELECT * FROM table")
If Not rs.BOF And Not rs.EOF Then
    result = rs.GetRows
End If

答案 2 :(得分:0)

以下解决方案对我有用

先决条件:

  1. 在Developer->工具->参考下添加相关的Oracle插件

  2. 为您正在使用的Oracle下载并安装ODBC驱动程序版本(32位/ 64位)

  3. Windows搜索-> ODBC数据源->在用户DSN和系统DSN下添加Oracle驱动程序

  4. 复制以下我用于MySQL的代码并根据您的要求更改参数

Sub ConnectToDB()
 dbName = InputBox("Enter DB Name")
        'Connection To MySQL
        Dim oConn As ADODB.Connection
        Dim str As String
        str = "DRIVER={MySQL ODBC 8.0 Unicode Driver};SERVER=localhost;DATABASE=Employeeportal;PORT=3306;UID=root;PWD=root;"
        Set oConn = New ADODB.Connection
        oConn.Open str
        MsgBox "Connected to MySQL DB"
       
        'Exporting result set to Excel
        Dim query As String
        query = "select * from " & dbName
        Dim recordSet As New ADODB.recordSet
       
        recordSet.Open query, oConn
        Sheet1.Range("A1:D1").CopyFromRecordset recordSet
        oConn.Close
End Sub