我习惯于按以下格式进行记录集:
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中保存简单的查询。
答案 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