如何在 Excel 中显示来自 Access 的二维数组记录集?

Posted

技术标签:

【中文标题】如何在 Excel 中显示来自 Access 的二维数组记录集?【英文标题】:How to display a 2D array recordset from Access in Excel? 【发布时间】:2021-10-20 09:11:32 【问题描述】:

如何显示我的 SQL 请求的结果?

在 Access 中,SQL 查询显示:

我的 VBA 代码只显示扇区名称。如何同时显示 Sector 和 Count 结果?

我的 VBA 代码:

sQuery = "SELECT Sector, COUNT(*) FROM Test WHERE Search = 'FR' AND LaDate = #20/10/2021# GROUP BY Sector"
Set dbRecSet = New ADODB.Recordset
dbRecSet.Open Source:=sQuery, ActiveConnection:=dbConn

If (dbRecSet.RecordCount <> 0) Then
    Do While Not dbRecSet.EOF
        Debug.Print dbRecSet.Fields(0).Value
        dbRecSet.MoveNext
    Loop
End If

根据我添加的评论

Debug.Print dbRecSet.Fields(1).Value

是否存在不循环显示的方法?

【问题讨论】:

您当前的代码是否可以正常工作且没有错误? Debug.Print dbRecSet.Fields(0).Value,dbRecSet.Fields(1).Value @Harun24HR 是的! @Nathan_Sav 谢谢,我可以像Debug.Print dbRecSet.GetRows 那样不循环吗? GetRows 返回一个数组,因此您需要循环遍历该数组或将其粘贴到一个范围内,还有 GetString 和 CopyFromRecordset。 【参考方案1】:

您还需要显示字段 1,如下所示: Debug.Print dbRecSet.Fields(0).Value,dbRecSet.Fields(1).Value

您还可以使用getrowsgetstringcopyfromrecordsetGetRows 将返回一个数组,因此需要循环或粘贴到 Excel,getString 将返回一个字符串。 CopyFromRecordset,将为您将记录集内容粘贴到 Excel 中的范围内。

【讨论】:

以上是关于如何在 Excel 中显示来自 Access 的二维数组记录集?的主要内容,如果未能解决你的问题,请参考以下文章

来自 Access 的 Excel VBA SQL 没有结果

如何以正确的顺序显示来自 Access 的数据?

如何使用python脚本自动将数据从访问中提取到excel中

Access 中的表达式在 Excel 中未正确显示

在 Access 2007 CSV 导出中:禁用科学记数法

在 Excel 中显示 MS-Access 记录的富文本格式