如标题所示,我正在尝试连接到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设置为我感兴趣的数据库的名称。不确定是否正确设置了该参数。
谢谢,感谢所有帮助。
答案 0 :(得分:3)
第一个问题:您是否在计算机上安装了Oracle Client?
根据您的连接字符串,使用transform
驱动程序。连接字符串必须是这样的:
Microsoft ODBC for Oracle
请注意,连接字符串与 Oracle ODBC驱动程序稍有不同,请参见 ODBC Driver Microsoft与ODBC 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}”