【问题标题】:Save the result of a SQL query into a variable in VBA?将 SQL 查询的结果保存到 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 中的列名是什么?,您似乎也与 strSQLstrQry 不匹配

标签: ms-access vba ms-access-2010 ms-access-2007


【解决方案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() 函数,该函数旨在返回单个值。

    【讨论】:

      猜你喜欢
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 2014-11-04
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      相关资源
      最近更新 更多