【发布时间】:2017-11-27 19:28:57
【问题描述】:
我正在尝试使用 ADODB 连接从查询创建记录集,然后将该记录集的内容复制到一系列单元格中
下面是我的代码大纲,但我不断收到错误
运行时错误'-2147467259 (80004005)'未指定错误
(我已将我的特定引用替换为所有大写的虚拟引用)
Sub Subroutine()
'establish ADODB connection to retrieve data from TABLE
Dim objConnection As New ADODB.connection
Dim objRecordset As New ADODB.Recordset
With objConnection
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source = MYDATASOURCE" & _
"Extended Properties = Excel 8.0;HDR = Yes;"
.Open
End With
'use query to record data to Excel range
Set objRecordset = objConnection.OpenRecordset("Select * From TABLE Where FieldNm = NAME")
With objRecordset
.Open
.MoveFirst
Do Until .EOF
Worksheets("WORKSHEET").Cells(14, 1) = objRecordset.Fields.Item("FieldNm")
.MoveNext
Loop
End With
End Sub
调试转到我的With objConnection 块中的.Open。在此之前,我遇到了.MoveNext 方法的问题。
【问题讨论】:
-
你试过
Worksheets("WORKSHEET").Range("A14").CopyFromRecordset objRecordset吗? -
我通常是这样操作的:
objRecordset.Open sSelectStatement, objConnection -
什么是 sSelectStatement?
-
请提供实际查询,因为这与 Excel 工作簿不兼容:
Select * From TABLE Where FieldNm = NAME。此外,将您的 sub 包装在错误处理中以获取特定消息。 -
@Parfait 我的数据在另一个位置的 Excel 表格中,所以 TABLE 是我的范围的名称。我的查询到底是什么与 Excel 不兼容?