#246 | クエリのトップ値プロパティをVBAから変更するには? | クエリ、VBA | |
クエリでは、そのデザインビューにおいて、プロパティシートで"トップ値"プロパティを設定することによって、上位何件かのレコードあるいは上位何パーセントかのレコードだけを抽出表示することができます。それをVBAを使って任意に設定変更したい場合には、QueryDefオブジェクトに"トップ値"を設定できるプロパティはありませんので、SQL文を直接書き換えることになります。それには、次のようなコードを実行します。なお、ここでは"qsel売上上位"という名前のクエリを対象としていますが、あらかじめ適当な"トップ値"プロパティが設定されていることが前提となります。また、"商品別売上実績.商品コード"という部分は、実際に適用するクエリによって異なりますので、SQLビューなどを参考に適宜書き換えてください。 Dim dbs As Database
Dim qdf As QueryDef Dim strSQL As String Dim strSQLTmp As String Dim intDelm As Integer Set dbs = CurrentDb 'クエリ定義を開く Set qdf = dbs.QueryDefs("qsel売上上位") 'SQL文を取得 strSQL = qdf.SQL 'SQL文でSELECTされる最初のフィールド名の位置を探す intDelm = InStr(strSQL, "商品別売上実績.商品コード") '最初のフィールド名以降のSQL文を変数に保存 strSQLTmp = Mid$(strSQL, intDelm) 'SQL文の先頭のTOP句を組み立ててSQL文を再構成 strSQL = "SELECT " & "TOP 5 " & strSQLTmp 'トップ5の場合 'strSQL = "SELECT " & "TOP 20 " & strSQLTmp 'トップ20の場合 'strSQL = "SELECT " & "TOP 10 PERCENT " & strSQLTmp 'トップ10%の場合 '再構成されたSQL文をクエリに設定 qdf.SQL = strSQL qdf.Close dbs.Close 'クエリを開いて確認 DoCmd.OpenQuery "qsel売上上位" |
|||
|
Copyright © T'sWare All rights reserved |