在Excel中的VBA宏中,我遇到一个问题,即具有完全相同的数据库凭据的完全相同的查询返回不同的结果,具体取决于正在执行脚本的计算机。有些人得到了所有正确的结果,有些则结果丢失了。
如果我们使用Toad或任何其他可以执行oracle的工具执行查询,它在每台经过测试的机器上都能正常工作。
到目前为止,我们发现以下事情并未导致问题:
所有测试的计算机都在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