excel - 尝试使用 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 设置为我感兴趣的数据库的名称。不确定我是否正确设置了该参数。
谢谢您,感谢您的所有帮助。
解决方案
第一个问题:您是否在您的机器上安装了 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 包”
推荐阅读
- c# - SignalR and Database Context Disposals
- python-3.x - From a Pandas Dataframe, return specific column values based on grouping and largest values of other columns
- python-3.x - 如何修复两个数据集之间的连接
- windows - return array of objects from Get-ChildItem -Path
- reactjs - Invariant Violation when using react-redux connect with react-native
- python - 使用 lambda 创建过滤器会产生 bool 错误
- angular - 为什么我们需要在 Angular 中使用“$event”关键字进行事件绑定?(用于输出)
- php - 如何在 lumen 5.8.* 中使用 dingo 修复实现 jwt?目标 [Dingo\Api\Contract\Routing\Adapter] 不可实例化
- javascript - 如何让我的网站自动更新一些我需要在每年特定时间添加的内容?
- rest - 连接到 REST 服务的 Power BI 出现 SSL 错误