フォームに表示されたレコードは、VBAを使って動的に並べ替えることができます。それには、フォームの「OrderByプロパティ」および「OrderByOnメソッド」を使います。
ここではその例として、3つの並べ替えボタンによってそれぞれ異なるフィールドを対象に並べ替えをするサンプルフォームを紹介します。ここでは、データシート形式のサブフォーム「受注_sub」を対象に並べ替えを行います。
[受注コード]ボタンをクリックしたとき
![[受注コード]ボタンをクリックしたとき](images/tips_315a.gif)
[得意先コード]ボタンをクリックしたとき
![[得意先コード]ボタンをクリックしたとき](images/tips_315b.gif)
[社員コード]ボタンをクリックしたとき
![[社員コード]ボタンをクリックしたとき](images/tips_315c.gif)
Private Sub cmdSort受注コード_Click()
'[受注コード]ボタンクリック時
With Me!受注_sub.Form
'並べ替えの基準とするフィールドを設定
.OrderBy = "受注コード"
'並べ替えを実行
.OrderByOn = True
End With
End Sub
Private Sub cmdSort得意先コード_Click()
'[得意先コード]ボタンクリック時
With Me!受注_sub.Form
'並べ替えの基準とするフィールドを設定
.OrderBy = "得意先コード"
'並べ替えを実行
.OrderByOn = True
End With
End Sub
Private Sub cmdSort社員コード_Click()
'[社員コード]ボタンクリック時
With Me!受注_sub.Form
'並べ替えの基準とするフィールドを設定(ここでは降順)
.OrderBy = "社員コード DESC"
'並べ替えを実行
.OrderByOn = True
End With
End Sub
|