如何在 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
您还可以使用getrows
、getstring
和copyfromrecordset
。 GetRows
将返回一个数组,因此需要循环或粘贴到 Excel,getString
将返回一个字符串。 CopyFromRecordset
,将为您将记录集内容粘贴到 Excel 中的范围内。
【讨论】:
以上是关于如何在 Excel 中显示来自 Access 的二维数组记录集?的主要内容,如果未能解决你的问题,请参考以下文章
来自 Access 的 Excel VBA SQL 没有结果