【问题标题】:How to display a 2D array recordset from Access in Excel?如何在 Excel 中显示来自 Access 的二维数组记录集?
【发布时间】: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。

标签: sql excel vba


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 2020-10-11
    • 2015-09-09
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多