访问:在VBA中使用查询来记录集

Ric*_*ick 4 ms-access vba

我习惯于以下列格式做记录集:

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.
Run Code Online (Sandbox Code Playgroud)

是否可以使用已创建的查询而不是文本并将其赋予where子句?

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

Con*_*rix 10

你也可以

  • 使用具有参数的查询并为查询使用参数提供的参数指定值.

    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
    
    Run Code Online (Sandbox Code Playgroud)

要么

  • 指定查询名称作为命令,并使用记录集上的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