Oracle Excel VBA CopyFromRecordSet列失败

Oracle Excel VBA CopyFromRecordSet列失败,oracle,vba,excel,remedy,Oracle,Vba,Excel,Remedy,我正在使用ADODB连接从Remedy(Oracle)中提取数据,出现了一个奇怪的故障,它似乎是由查询中的两个字段引起的。如果我删除这两个有问题的字段,CopyFromRecordset将不会出现问题,我将获得所有行和列的数据。如果我将问题列保留在: 每个记录都将丢失两个问题列和的数据 右边的每一列 例外情况是,每93行(第94行、第187行、第289行等)将有其所有数据 我尝试过的事情: 重命名字段名以查看是否有效(nope) 在记录中循环,而不是从记录集复制(这很有效 但是速度非常慢(

我正在使用ADODB连接从Remedy(Oracle)中提取数据,出现了一个奇怪的故障,它似乎是由查询中的两个字段引起的。如果我删除这两个有问题的字段,CopyFromRecordset将不会出现问题,我将获得所有行和列的数据。如果我将问题列保留在:

  • 每个记录都将丢失两个问题列和的数据 右边的每一列
  • 例外情况是,每93行(第94行、第187行、第289行等)将有其所有数据
我尝试过的事情:

  • 重命名字段名以查看是否有效(nope)
  • 在记录中循环,而不是从记录集复制(这很有效 但是速度非常慢(可能是因为有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

我意识到这个问题现在已经有点过时了

您是否尝试过直接连接到实际数据库而不是使用ARODBC? ARODBC为您做了一些很好的事情,比如自动转换选择字段和日期/时间字段,但是您可以自己做一些工作


直接访问数据库可能会使事情变得更容易,并且可能会使这个问题消失

也许您可以用一个代码示例和有关您正在读取的Oracle表的列的数据类型的更多信息来更新您的问题。谢谢,我在问题中添加了代码。失败的两列是varchar字段。(与正在工作的大约30列的类型相同)我从未找到此失败的原因,但是如果您也有此问题,请使用.getrows并手动转置和粘贴数组,而不是使用copyfromrecordset。