Oracle 使用ADODB的VBA查询在不同的计算机上返回不同的结果
在Excel中的VBA宏中,我遇到了一个问题,即使用完全相同的数据库凭据的完全相同的查询返回不同的结果,具体取决于执行脚本的计算机。一些拉取所有正确的结果,另一些则缺少结果 如果我们使用Toad或任何其他能够执行oracle的工具执行查询,那么它在每台测试过的机器上都能正常工作 到目前为止,我们发现以下因素并不是问题的根源:Oracle 使用ADODB的VBA查询在不同的计算机上返回不同的结果,oracle,vba,excel,adodb,Oracle,Vba,Excel,Adodb,在Excel中的VBA宏中,我遇到了一个问题,即使用完全相同的数据库凭据的完全相同的查询返回不同的结果,具体取决于执行脚本的计算机。一些拉取所有正确的结果,另一些则缺少结果 如果我们使用Toad或任何其他能够执行oracle的工具执行查询,那么它在每台测试过的机器上都能正常工作 到目前为止,我们发现以下因素并不是问题的根源: Oracle驱动程序版本(即时客户端与完整客户端均已测试,未发现相关性) Excel版本(我公司的每个人都有相同的Excel版本) VBA项目引用是相同的 已确认所有计算
- Oracle驱动程序版本(即时客户端与完整客户端均已测试,未发现相关性)
- Excel版本(我公司的每个人都有相同的Excel版本)
- VBA项目引用是相同的李>
- 已确认所有计算机都指向正确的数据库
- ODBC设置相同
Dim cn
Set cn = CreateObject("ADODB.Connection")
Dim rs
Set rs = CreateObject("ADODB.Recordset")
cn.ConnectionString = "DSN=#####;UID=####;PWD=#####;DBQ=######;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;MLD=0;ODA=F"`
`cn.Open`
`Set rs = cn.Execute(SQLfinal)`
Dim iCol As Integer
Dim iRow As Integer
fldCount = rs.Fields.Count
For iCol = 1 To fldCount
Sheets("8. Data").Cells(12, iCol).Value = rs.Fields(iCol - 1).Name
Next
Sheets("8. ####").Cells(13, 1).CopyFromRecordset rs
rs.Close
Set rs = Nothing
cn.Close
Rows("12:12").Select
Selection.AutoFilter
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
什么类型的查询是
SQLFinal
(视图/表)?您是否在显示不同结果的计算机上使用完全相同的登录?缺少的结果总是同一组吗?缺少的结果有什么特别的地方吗?嗨,Tim,SQLFinal是一个表查询。我们在所有计算机上使用相同的数据库登录。缺少的总是同一组结果。我无法识别导致这些结果不同的任何特定属性。如果将查询转换为“从…选择计数(某物)”,它是否在不同的计算机上给出相同的数字?查询是否涉及select子句中的任何日期?我们在某些计算机上获得相同的缩减值集,在其他计算机上获得完整的值集。因此,虽然每个组的计数相同,但这两个组的计数不同。您是否尝试过切换到无DSN的连接字符串?