首页 > 解决方案 > 尝试使用 VBA 连接到 Oracle 数据库服务器

问题描述

正如标题所述,我正在尝试连接到 Oracle DB 以获取 vba 脚本。

我在这里使用这篇文章来了解如何做到这一点:https ://blogs.perficient.com/2015/12/17/connectcompare-databases-excel-macro/

我只有非常基本的连接代码,我收到一条错误消息"[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified"

我的代码是:

Private Sub CommandButton1_Click()
    Dim dbConnection As ADODB.Connection
    Dim recordSet As ADODB.recordSet
    Set dbConnection = New ADODB.Connection
    Set recordSet = New ADODB.recordSet
    conString = "Driver = {Microsoft ODBC for Oracle};DBQ=####;Uid=<####>;Pwd=<####>;"
    dbConnection.Open (conString)

End Sub

我不确定的一件事是 DBQ 到底是什么。我已将 DBQ 设置为我感兴趣的数据库的名称。不确定我是否正确设置了该参数。

谢谢您,感谢您的所有帮助。

标签: exceldatabasevbaoracle

解决方案


第一个问题:您是否在您的机器上安装了 Oracle 客户端?

根据您的连接字符串,您使用Microsoft ODBC for Oracle驱动程序。连接字符串必须是这样的:

Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;

注意,连接字符串与Oracle ODBC 驱动程序略有不同,请参阅 ODBC Driver Microsoft vs. ODBC Driver Oracle

第二个问题:您的 Excel 是 32 位还是 64 位?

Oracle 客户端和 ODBC 驱动程序必须与您的 Excel 具有相同的体系结构(即 32 位与 64 位)。古老的Microsoft ODBC for Oracle驱动程序仅存在于 32 位。如果您的 Excel 是 64 位,那么您必须使用 Oracle ODBC 驱动程序。

另请注意,默认的 Oracle Instant 客户端不包含 ODBC 驱动程序,您必须从Oracle Instant Client 下载下载并安装“ODBC 包”


推荐阅读