6

我已经习惯了以下格式的记录集:

Dim rs As DAO.Recordset
Dim strSQL As String

strSQL = "Select field1, field2 from myTable where field1 > 30"

Set rs = CurrentDb.OpenRecordset(strSQL)

'... Do wahtever using rs.

是否可以使用已经创建的查询而不是文本并为其提供 where 子句?

这是一个指向 SQL Server 2008 数据库的链接表。我喜欢在 Access 中保存简单的查询。

4

1 回答 1

13

你可以

  • 使用具有参数的查询并指定参数的值,前提是查询使用参数。

    Dim dbs As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim prm As DAO.Parameter
    Dim rst As DAO.Recordset
    
    Set qdf = CurrentDb.QueryDefs("qry_SomeQueryWithParameters")
    
    qdf.Parameters("SomeParam").Value = "whatever"
    
    Set rst = qdf.OpenRecordset
    

或者

  • 将查询名称指定为命令并在记录集上使用Filter 属性

    Dim rs As DAO.Recordset
    Dim rsFiltered As DAO.Recordset


    Set rs = CurrentDb.OpenRecordset(qry_SomeQueryWithoutParameters)

    rs.Filter = "field1 > 30"
    set rsFiltered  = rs.OpenRecordset


于 2012-05-10T18:21:23.243 回答