将 SQL 查询的结果保存到 VBA 中的变量中?
Posted
技术标签:
【中文标题】将 SQL 查询的结果保存到 VBA 中的变量中?【英文标题】:Save the result of a SQL query into a variable in VBA? 【发布时间】:2015-12-02 13:24:45 【问题描述】:我正在尝试将查询结果分配给变量。我有一个查询(我们称之为“Query1”),它将检查各种标准。我尝试如下。
Dim rst As DAO.Recordset
Dim strSQL As String
Dim Variable1 As String
strQry = "Query1"
Set rst = CurrentDb.OpenRecordset(strQry)
Variable1 = ?????
rst.Close
Set rst = Nothing
我需要帮助来完成上述代码,以便我的变量将获得查询返回的值。请注意,我的 Query1 将返回 Null 值或单个记录。
【问题讨论】:
query1 中的列名是什么?,您似乎也与strSQL
和 strQry
不匹配
【参考方案1】:
我不明白你为什么需要一个记录集。您可以使用DLookup
获取Query1
返回的值。
Dim Variable1 As Variant
Variable1 = DLookup("[column name here]", "Query1")
我将Variant
用于Variable1
,以便它可以接受Null。如果您希望将其保留为 String
,您可以使用 Nz()
,正如 Andre 演示的将 Null 转换为字符串。
【讨论】:
【参考方案2】:如果您的查询只返回一列,并且只返回零或一条记录,您可以使用rst(0)
获取第一个字段(Fields 集合是从零开始的)。
If rst.EOF Then
' covers "no records returned"
Variable1 = ""
Else
' Nz() covers "NULL returned"
Variable1 = Nz(rst(0), "")
End If
但使用查询中的字段名称可读性更好。
Variable1 = Nz(rst!myField, "")
您可能还想查看 DLookup()
函数,该函数旨在返回单个值。
【讨论】:
以上是关于将 SQL 查询的结果保存到 VBA 中的变量中?的主要内容,如果未能解决你的问题,请参考以下文章
VBA/SQL ACCESS:将查询结果复制到其他访问数据库中的表
如何将 sql 查询的结果保存到变量中,然后在脚本中使用它?
尝试使用 sql/vba 的结果填充文本框并出现 #Name 错误