访问 VBA 以将 SUM() 添加到查询字符串

Posted

技术标签:

【中文标题】访问 VBA 以将 SUM() 添加到查询字符串【英文标题】:Access VBA To Add SUM() To Query String 【发布时间】:2017-03-21 16:36:41 【问题描述】:

我有一个多选列表框,本质上是构建一个查询。语法按其应有的方式工作,但不是为每个sale 逐行输入,我如何检查数组是否包含字段sale 以及它是否将文本更改为SUM(Sales) As SaleAmt

这是我当前的语法:

    Dim I As Long 
Dim X As Long 
Dim arrValues() 
If lstQueryBuild.ListIndex <> -1 Then 
    For I = 0 To lstQueryBuild.ListCount - 1 
        If lstQueryBuild.Selected(I) Then 
            Redim Preserve arrValues(X) 
            arrValues(X) = lstQueryBuild.List(I) 
            X = X + 1 
        End If 
    Next I 
End If 

CurrentDb.Exeucte "Select " & Join(arrValues, ",") & " FROM holdingtable"

这会产生

Debug.Print produces Select name, address, phone, company, sales from holdingtable

【问题讨论】:

【参考方案1】:

您可以尝试用遍历数组的循环替换您的 Join() 函数。

dim sSQL$

sSQL="Select "

For x=lbound(arrValues) to ubound(arrvalues)
if arrValues(x)="sales" then 
     sSQL=sSQL & "sum(Sales),"
else
     sSQL=sSQL & arrValues(x) & ","
end if
next x

ssQL=left(sSQL,len(ssql)-1) & " from holdingtable"
CurrentDb.Execute sSQL

【讨论】:

以上是关于访问 VBA 以将 SUM() 添加到查询字符串的主要内容,如果未能解决你的问题,请参考以下文章

Access VBA中一列的总和

访问 VBA 以表格格式将查询结果发送到 Outlook 电子邮件

访问VBA参数查询将整数更改为字符串

VBA - 使用 DAO 对象的运行时错误 3271

在访问文本中导出 sql 查询

访问 VBA。检测记录集条目是不是会溢出