こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アクセス2007 VBA 並べ替え

テーブル1のフィールド1にデータを入れ
それを元に帳票フォームを作成しました。

フォームヘッダー部分に
昇順ボタンと降順ボタンを作り、
ボタンを押すごとに並び替えを行いたいのですが
どのようなVBAコードを書けばいいのかわかりません。

命令分としては、
「フォームに表示されるテーブル1のフィールド1データの
昇順に並べ替える」です。

SQLを使う方法ではなく、
DocmdかacCmdを使う方法が希望です。

アクセスのヘルプの
-----------------------------------------
Access 開発者用リファレンス
Form."OrderBy/並べ替え" プロパティ
-----------------------------------------
を見ると、
-----------------------------------------
構文
式.OrderBy
式 Form オブジェクトを表す変数です。
-----------------------------------------
と書いてありますがこの式がわからないのでご教授よろしくお願いします。

投稿日時 - 2012-03-04 15:12:00

QNo.7341909

困ってます

質問者が選んだベストアンサー

> 式.OrderBy

例えば "フォーム1" というフォームの並べ替えを行うなら

 Forms!フォーム1.OrderBy = "フィールド1"

この場合 Form オブジェクトを表す変数 が 「Forms!フォーム1」 です。

状況によって、いろいろな記述ができます。

・並べ替えを行うのが、コードを書いているそのフォーム自信なら

 Me.OrderBy = "フィールド1"

・まさに変数を使うなら

 Dim frm As Form
 Set frm = Screen.ActiveForm とか Set frm = Me.サブフォーム.Form など。
 frm.OrderBy = "フィールド1"
 
※OrderBy は 複数のフィールドをカンマで区切って設定できます。
※通常、OrderByOn とセットで使用します。

投稿日時 - 2012-03-04 17:10:21

お礼

【方法1】Forms!フォーム1.OrderBy = "フィールド1"
【方法2】Me.OrderBy = "フィールド1"

【方法3】
Dim frm As Form
Set frm = Screen.ActiveForm
frm.OrderBy = "フィールド1"

出来ました!
ちなみに降順に並べ替える場合はどうすればいいのでしょうか?
再度ご回答よろしくお願いします。

投稿日時 - 2012-03-04 23:26:38

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

昇順は ASC、降順は DESC です。

レコードの並び替え - ORDER BY句 : SQL入門講座
http://www.accessclub.jp/sql/10.html

こちらは Access VBA のヘルプと同じものです。
ORDER BY 句
http://office.microsoft.com/ja-jp/access-help/HP001032258.aspx

VBA をやるなら ヘルプを活用することを強くお勧めします。

投稿日時 - 2012-03-05 11:01:02

お礼

ありがとうございました。

投稿日時 - 2012-03-24 13:13:08

あなたにオススメの質問