You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中显示Access查询返回的二维数组记录集并输出Sector与Count结果

无循环展示记录集全部数据的实现方案

最优方案:使用ADODB.Recordset的GetString方法

该方法可以直接将整个记录集转换为格式化字符串,无需手动遍历循环,代码最简洁:

' 建议给统计字段加别名,后续取值更易维护
sQuery = "SELECT Sector, COUNT(*) AS SectorCount 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 Not dbRecSet.BOF And Not dbRecSet.EOF Then
    ' 参数说明:列用制表符分隔,行用换行符分隔,空值显示为空
    Debug.Print dbRecSet.GetString(, , vbTab, vbCrLf, vbNullString)
End If
dbRecSet.Close

输出效果默认每行对应一条查询结果,列之间用制表符分隔,可同时展示Sector和Count统计值。

可选方案:使用GetRows方法转数组

如果后续还需要对查询结果做二次处理,可以先一次性读取所有数据到二维数组,也无需循环遍历记录集:

Dim resArr As Variant
If Not dbRecSet.BOF And Not dbRecSet.EOF Then
    resArr = dbRecSet.GetRows ' 直接把全部记录写入二维数组
    ' 数组结构说明:resArr(0,行号)对应Sector值,resArr(1,行号)对应Count统计值,下标从0开始
End If

补充说明

  • 给SQL里的COUNT(*)加别名后,也可以直接用dbRecSet.Fields("SectorCount").Value取值,比用字段索引更易维护
  • 使用GetString/GetRows后记录集指针会自动移动到末尾,若需要重复使用记录集请调用dbRecSet.MoveFirst重置指针

内容的提问来源于stack exchange,提问作者TourEiffel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:45:07