我正在使用 ADODB 连接从 Remedy (Oracle) 中提取数据,并且出现了一个奇怪的故障,这似乎是由查询中的两个字段引起的。如果我删除这两个问题字段,CopyFromRecordset 可以正常工作,并且我会获得所有行和列的数据。如果我将问题列留在:
- 每条记录都将缺少两个问题列和右侧每一列的数据
- 例外情况是每 93 行(第 94、187、289 行等)将包含其所有数据
我尝试过的事情:
- 重命名字段名称以查看是否可行(不)
- 循环遍历记录而不是 copyfromrecordset(这可行,但速度非常慢,可能是因为有 45 列)
我已经排除:
- 字段中的数据太长(最大长度为 25 个字符)
- 具有无效字符的字段中的数据(失败的一半行在这些列中没有数据)
更新:代码示例
Sub GetData()
Dim Conn1 as New ADOBD.Connection
Dim Cmd1 as New ADOBD.Command
Dim Rs1 as New ADODB.Recordset
Dim PlaceHere as New Worksheet
Dim strsql as string
Dim AccessConnect As String
AccessConnect = "Driver={AR System ODBC Driver};ARServer=Servername;UID=UserID;PWD=password;ARAuthentication=;RNameReplace=1;SERVER=Words"
Conn1.ConnectionString = AccessConnect
Conn1.Open
Cmd1.ActiveConnection = Conn1
strsql=Sheets("Sheet1").Range("A2").Value
Cmd1.CommandText = strsql
Set rs1=cmd1.Execute
Set PlaceHere = Sheets("Sheet2")
PlaceHere.Range("A2").CopyFromRecordSet Rs1
Rs1.Close
Conn1.Close
End Sub