サンプルプロシージャでは、既存のクエリのSQLステートメントを取得して、
ORDER BY句を追加してからクエリを実行しています。
クエリ「クエリ1」は、売上データを抽出するクエリです。
抽出されたレコードを、「売上金額の降順、商品番号の昇順」で並べ替える
ためのORDER BY句をSQLプロパティで取得したSQLステートメントに追加しています。
但し、既にORDER BY句が指定されている場合は追加しません。
● サンプル ●
Sub Sample()
Dim db As Database
Dim qdef As QueryDef
Dim MySql As String
Dim myStr As String
Set db = CurrentDb()
Set qdef = db.QueryDefs("クエリ1")
MySql = qdef.SQL
myStr = " ORDER BY 売上金額 DESC, 商品番号;"
If InStr(MySql, "ORDER BY") = 0 Then
MySql = Left(MySql, InStr(MySql, ";") - 1) & myStr
End If
qdef.SQL = MySql
DoCmd.OpenQuery "クエリ1"
End Sub
● 詳細 ●
InStr関数は、ある文字列の中から指定した文字列を検索し、最初に見つかった
文字位置(先頭からその位置までの文字数)を返す文字列処理関数です。
Left関数は、文字列の左端から指定した文字数分の文字列を返します。
OpenQueryメソッドは、「クエリを開く」アクションを実行します。
● 補足説明 ●
DAOを使用するには、[ツール(T)]メニューの[参照設定(R)]をクリック
すると表示される[参照設定]ダイアログボックスで、「Microsoft DAO 3.6
Object Library」をチェックします。
|