尝试使用VBA连接到Oracle DB Server

时间:2020-03-13 14:31:40

标签: excel database vba oracle

如标题所示,我正在尝试连接到vba脚本的Oracle数据库。

我在这里使用有关如何执行此文章的文章: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设置为我感兴趣的数据库的名称。不确定是否正确设置了该参数。

谢谢,感谢所有帮助。

2 个答案:

答案 0 :(得分:3)

第一个问题:您是否在计算机上安装了Oracle Client?

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

Microsoft ODBC for Oracle

请注意,连接字符串与 Oracle ODBC驱动程序稍有不同,请参见 ODBC Driver MicrosoftODBC Driver Oracle

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

Oracle客户端和ODBC驱动程序必须与Excel具有相同的体系结构(即32位和64位)。古老的Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword; 驱动程序仅适用于32位。如果您的Excel是64位的,则必须使用Oracle ODBC驱动程序。

另一个说明,默认的Oracle Instant Client不包括ODBC驱动程序,您必须从Oracle Instant Client Downloads下载并安装“ ODBC软件包”

答案 1 :(得分:0)

上面有一条评论可以使用这种格式,我认为这是正确的 “ DSN = {MyDataSource}; UID = {MyUserID}; PWD = {MyPassword}; SERVER = {MyOracleServer}”

Microsoft documentationhere

相关问题