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

时间:2015-04-21 19:58:00

标签: excel oracle vba excel-vba adodb

在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

0 个答案:

没有答案