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

时间:2012-05-10 18:09:35

标签: 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.

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

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

1 个答案:

答案 0 :(得分: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
    


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


    Set rs = CurrentDb.OpenRecordset(qry_SomeQueryWithoutParameters)

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