【发布时间】:2020-01-05 05:08:46
【问题描述】:
我无法将 Access 查询的整个结果写入对象。
这是一个示例代码。
Sub test()
Dim cn As Object
Dim strConnection As String
Dim rs As Object
Set cn = CreateObject("ADODB.Connection")
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Test.mdb;Jet OLEDB:Database Password=pass;"
cn.Open strConnection
'Write some test data
cn.Execute ("CREATE TABLE TestTable (ID int, Column_1 varchar(255), Column_2 varchar(255));")
cn.Execute ("INSERT INTO TestTable (ID, Column_1, Column_2) VALUES (1, ""Foo"", ""Bar"")")
cn.Execute ("INSERT INTO TestTable (ID, Column_1, Column_2) VALUES (2, ""Bar"", ""Foo"")")
cn.Execute ("INSERT INTO TestTable (ID, Column_1, Column_2) VALUES (3, ""FooBar"", ""BarFoo"")")
'Get the data
Set rs = cn.Execute("SELECT * FROM TestTable")
cn.Close
End Sub
在查看监视列表上的 rs 时,我似乎只得到第一行,在字段下有项目 1 = 1、项目 2 = Foo、项目 3 = 栏。
在带有 PyODBC 的 Python 上,我习惯使用 fetchall 方法,但对于 ADODB,我没有找到类似的方法。
在访问时,查询返回所有 3 行。
对象类型是否错误?我也试过“Set rs = New ADODB.Recordset”,但它也有帮助。那么如何将所有 3 行写入对象呢?
【问题讨论】: