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句を指定することは可能ですか?

これは、SQLServer2008データベースへのリンクテーブルです。簡単なクエリを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
    

また


    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 に答える