首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ODBC连接器的VBA/MySQL问题

问使用ODBC连接器的VBA/MySQL问题
EN

Stack Overflow用户
提问于 2012-03-22 15:57:13
回答 2查看 9.9K关注 0票数 4

我已经为此挣扎了几天了。任何帮助都非常感谢。

正在尝试在具有以下软件的PC上使用Excel VBA连接到MySQL数据库:

MySQL 2007 Windows 7 x64家庭高级版Excel 5.5 MySQL ODBC连接器5.1,64位

在Excel VBA中,我引用了微软的ActiveX Objects 2.8库。

我用来连接的VBA是:

代码语言:javascript
复制
Dim oConn As ADODB.Connection
Public Sub ConnectDB()
    Set oConn = New ADODB.Connection
    oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=localhost;" & "DATABASE=test;" & "USER=root;" & "PASSWORD=PWhere;" & "Option=3"
End Sub

每次运行此命令时,我都会收到错误对话框:“找不到Microsoft数据源名称,未指定默认驱动程序”

MySQL服务肯定正在运行。

我已经使用Windows Data Source Administrator检查了DSN 5.1是否存在并且正确:这是正确的,当我尝试以这种方式创建MySQL时,请检查OK。

浏览VBA项目引用选项,我注意到引用大量不同ADO库的选项,包括(多维)选项和库版本2.0、2.1、2.5、2.6、2.7和6.0 -也许答案就在其中之一?

如果需要更多细节,请让我知道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-22 17:05:52

您需要使用32位或64位版本,具体取决于Excel的版本,而不是Windows。所以即使你运行的是64位的Windows7,我相信Excel2007也只有32位,所以你需要使用32位的mysql连接器。

另请参阅此bug report,它与您的问题类似。

票数 4
EN

Stack Overflow用户

发布于 2012-09-29 16:08:12

当我将我的应用程序移动到不同版本驱动程序的其他系统时,我得到了类似的消息-它看起来像是拼写错误的驱动程序名称导致了相同的消息。为了找到正确的驱动程序名称并使应用程序驱动程序版本独立,我使用以下代码:

代码语言:javascript
复制
    Public Function Get_Driver() As String

    Const HKEY_LOCAL_MACHINE = &H80000002
    Dim l_Registry As Object
    Dim l_RegStr As Variant
    Dim l_RegArr As Variant
    Dim l_RegValue As Variant

    Get_Driver = ""
    Set l_Registry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    l_Registry.enumvalues HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", l_RegStr, l_RegArr

    For Each l_RegValue In l_RegStr
        If InStr(1, l_RegValue, "MySQL ODBC", vbTextCompare) > 0 Then
            Get_Driver = l_RegValue
            Exit For
        End If
    Next
    Set l_Registry = Nothing
End Function
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9818365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档