Oracle 使用ADODB的VBA查询在不同的计算机上返回不同的结果

Oracle 使用ADODB的VBA查询在不同的计算机上返回不同的结果,oracle,vba,excel,adodb,Oracle,Vba,Excel,Adodb,在Excel中的VBA宏中,我遇到了一个问题,即使用完全相同的数据库凭据的完全相同的查询返回不同的结果,具体取决于执行脚本的计算机。一些拉取所有正确的结果,另一些则缺少结果 如果我们使用Toad或任何其他能够执行oracle的工具执行查询,那么它在每台测试过的机器上都能正常工作 到目前为止,我们发现以下因素并不是问题的根源: Oracle驱动程序版本(即时客户端与完整客户端均已测试,未发现相关性) Excel版本(我公司的每个人都有相同的Excel版本) VBA项目引用是相同的 已确认所有计算

在Excel中的VBA宏中,我遇到了一个问题,即使用完全相同的数据库凭据的完全相同的查询返回不同的结果,具体取决于执行脚本的计算机。一些拉取所有正确的结果,另一些则缺少结果

如果我们使用Toad或任何其他能够执行oracle的工具执行查询,那么它在每台测试过的机器上都能正常工作

到目前为止,我们发现以下因素并不是问题的根源:

  • Oracle驱动程序版本(即时客户端与完整客户端均已测试,未发现相关性)
  • Excel版本(我公司的每个人都有相同的Excel版本)
  • VBA项目引用是相同的
  • 已确认所有计算机都指向正确的数据库
  • ODBC设置相同
所有测试的机器都在windows 7上运行Excel 2010,数据库为Oracle 11

这是剧本

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的连接字符串?