用excelvba连接mysql(多示例)数据库

zf2sa74q  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(765)

我的电脑上安装了多个mysql示例,分别是instance1和instance2。。。
第一示例数据目录为“c:\mysql2\data”,地址为:localhost,port=3306;
二示例数据目录为“c:\programdata\mysql\mysql server 5.7\data”,地址为:localhost,port=3308;

  1. server_name = "localhost"
  2. port = "3308"
  3. database_name = "test2"
  4. user_id = "root"
  5. password = "xxxx"
  6. Set conn = New ADODB.Connection
  7. conn.Open "DRIVER={MySQL ODBC 3.51 Driver}" _
  8. & ";Data Source=localhost" _
  9. & ";SERVER=" & server_name _
  10. & ";PORT=" & port _
  11. & ";DATABASE=" & database_name _
  12. & ";UID=" & user_id _
  13. & ";PWD=" & password _
  14. & ";OPTION=16427"

当我运行上面的代码连接到第二个示例数据库时,它显示错误:
运行时错误“-2147467259(80004005)”:[microsoft][odbc驱动程序管理器]未找到数据源名称,也未指定默认驱动程序
这段代码还显示了我的第一个示例的错误,该示例的服务器名为localhost,端口号为=3306
此代码在仅安装默认示例的情况下运行良好。

vi4fp9gy

vi4fp9gy1#

在连接字符串中,如果

  1. Driver={MySQL ODBC 8.0 Unicode Driver}

如果打开的是odbc数据源(32位),而不是odbc数据源(64位)

看到相同的名字了吗


那么这个代码就行了

  1. Public Sub ask_sql1()
  2. Dim SQL As String
  3. SQL = "SELECT * FROM Users"
  4. Dim Conn As ADODB.Connection
  5. Set Conn = New ADODB.Connection
  6. Conn.ConnectionString = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Database=test;UID=root;PWD=*********"
  7. Conn.Open
  8. Dim recordSet As ADODB.recordSet
  9. Dim Field As ADODB.Field
  10. Set recordSet = New ADODB.recordSet
  11. recordSet.Open SQL, Conn, adOpenStatic, adLockReadOnly, adCmdText
  12. If recordSet.State Then
  13. For Each Field In recordSet.Fields
  14. MsgBox Field.Name
  15. Next Field
  16. Set recordSet = Nothing
  17. End If
  18. Conn.Close
  19. End Sub

你的办公室是64还是32

能否添加odbc数据源(32位)/驱动程序的屏幕截图?

展开查看全部

相关问题