Windows 8 & Office 2013 Access 2013

フォームのレコードをボタンをクリックして並べ替える

投稿日:2017年1月7日 更新日:

Accessでは、分割フォームをよく利用しています。

分割フォームは、フォームビュー(単票フォーム)とデータシートビューが同時に表示され、Excelのフィルターと同じようにフィルターボタンで様々な抽出や並べ替えができるので重宝しています。

分割フォーム(単票フォームとデータシートを同時に表示)の作成と使い方

Accessでは、画面を2つに分け[単票フォーム]と[データシート]を同時に表示できる[分割フォーム]というのがあります。Access200 ...

続きを見る

いくら便利な分割フォームでも、複数のフィールドで並べ替えたい場合などは、コマンドボタンを設置しておくとより便利になります。

ここでは、[並べ替え]ボタンをクリックして、[売上]の降順で[商品コード]の昇順に並べ替えるようにします。並べ替えの[解除]ボタンも設置します。

マクロビルダーを起動して埋め込みマクロで設定する方法と、コードビルダーを起動してVBAで記述する方法を紹介します。

分割フォームに並べ替えボタンと解除ボタンを設置

参考分割フォームを利用するとデータシートビューでデータ抽出をすることが多いと思いますが、空白を含むフィールドでは注意が必要です。

フィルターの空白を含む複数選択で抽出数が異なる

Access2007からの新機能だと思うですが、テーブルやデータシートビューでフィルターが使用できます。 Excelのフィルターと同じように ...

続きを見る

また、フィルターボタンをクリックしても、リストが表示されない場合があります。

これは、[Accessのオプション]の設定で解決できます。以下の記事で解説しています。

フィルターボタンをクリックしてもリストが表示されない場合

テーブルとクエリ

ここでは、テーブル[T_商品]の[商品ID]フィールドとテーブルの[T_売上]の[商品名]フィールドをリレーションシップで参照整合性を設定しています。

リレーションシップの設定

2つのテーブルを基にクエリ[Q_売上]を作成しています。

デザインビューを開いて、デザイングリッドで、並べ替えは[ID]の昇順になるようにしています。

クエリのデザインビュー

このクエリをもとに分割フォームを作成しています。以下のように[ID]の昇順に並びます。

分割フォームでは、各フィールドの▼ボタンをクリックして、昇順や降順の並べ替え、また、レコードの抽出なども簡単に行うことができます。

分割フォームのフィルター

参考ここでのフォームの表示は、[タブ付きドキュメント](既定)です。[ウィンドウを重ねて表示する]と[タブ付きドキュメント]の違いについては、以下の記事で解説しています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...

続きを見る

フォームにコマンドボタンを設置

フォームにボタンを設置して、クリックすると[売上]の降順で[商品コード]の昇順に並ぶようにします。

まず、フォームをデザインビューで開きます。

[デザイン]タブの[コントロール]にある[ボタン]をクリックして、任意の位置でドラッグします。

コマンドボタンの挿入

この時、[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンをクリックして閉じます。

[コマンドボタンウィザード]は[キャンセル]ボタンで閉じる

コマンドボタンに[標題]と[名前]

コマンドボタンのプロパティを表示して、[標題]と[名前]を付けます。

キーボードから[F4]キーを押して、プロパティを表示します。もちろん、[デザイン]タブの[ツール]グループにある[プロパティシート]ボタンをクリックしても同じです。

挿入したコマンドボタンは、ここでは[並べ替え]という標題で、ボタンの名前は[並べ替えボタン]としています。

[標題]は[書式]タブにあります。

コマンドボタンのプロパティ[諸色]タブの[標題]

[名前]は[その他]タブにあります。

コマンドボタンのプロパティ[その他]タブの[名前]

マクロビルダーを選択して[埋め込みマクロ]で設定

[並べ替え]ボタンのプロパティの[イベント]タブにある[クリック時]の[...]ボタンをクリックします。

[イベント]タブの[クリック時]

[ビルダーの選択]ダイアログボックスが表示されます。[マクロビルダー]を選択して、[OK]ボタンをクリックします。

[ビルダーの選択]ダイアログボックス

[マクロツール]が表示されますので、▼ボタンをクリックして、一覧の最後にある[並べ替えの設定]をクリックします。

[並べ替えの設定]アクションを選択

そして、[並べ替え]のテキストボックスに以下のように入力します。

レコードを並べ替えるフィールド名を指定します。

既定では昇順に並べ替えられますが、フィールド名の後ろに半角スペースを入力して、[DESC]と入力すると降順になります。

DESCの前には、必ず半角スペースを入力します。

また、複数のフィールドで並べ替えを指定する場合は、[,(カンマ)]で区切ります。

[売上] DESC, [商品コード]

[並べ替えの設定]のテキストボックスに入力

[閉じる]ボタンをクリックします。

以下のメッセージウィンドウが表示されたら、[はい]をクリックします。

メッセージウィンドウ

[並べ替え]ボタンのプロパティには、[埋め込みマクロ]と表示されます。

プロパティのクリック時[埋め込みマクロ]

フォームビューに切り替えて、動作を確認します。

[並べ替え]ボタンをクリックして動作を確認

[解除]ボタンの設置

並べ替えを実行した後に、並べ替えを解除するためのボタンを設置します。

同じようにコマンドボタンを挿入して、マクロビルダーを選択してマクロツールを表示します。

今度は、一覧から[フィルター/並べ替えの解除]を選択します。

[フィルター/並べ替えの解除]アクションを選択

フォームビューに切り替えて、動作を確認します。

参考他のフィールドで並べ替えを設定していても、すべてのフィールドの並び替えが解除されます。

フォームビューに切り替えて動作を確認

参考[埋め込みマクロ]と[独立マクロ]の違いについては、以下の記事で解説しています。

[埋め込みマクロ]と[独立マクロ]の違いについて

コマンドボタンをカスタマイズすると楽しくなります。

コマンドボタンの背景色を変更/ポイント時とクリック時の色を設定

Access2010から、フォームで作成したコマンドボタンの背景色がプロパティで設定できるようになりました。 ポイント時の色や、クリック時の ...

続きを見る

[コードビルダー]を選択してVBAで設定

コマンドボタンを挿入して、コマンドボタンの標題と名前を付けるところまでは同じですので、[ビルダーの選択]から解説します。

どちらか、分かりやすいほうで設定してください。

[ビルダーの選択]ダイアログボックスで[コードビルダー]を選択して[OK]ボタンをクリックします。

[ビルダーの選択]ダイアログボックスで[コードビルダー]を選択

以下のように入力します。

ここもDESCの前には、半角スペースを入力します。複数のフィールドで並べ替えを指定する場合は、[,(カンマ)]で区切ります。

[Me.]は省略しても動作すると思います。

Me.OrderBy = "売上 DESC,商品コード"
Me.OrderByOn = True

VBEに入力

[並べ替え]ボタンのプロパティには、[イベントプロシージャ]と表示されます。

プロパティのクリック時[イベントプロシージャ]

[解除]ボタンには、以下のように入力します。

参考他のフィールドで並べ替えを設定していても、すべてのフィールドの並び替えが解除されます。

Me.OrderByOn = False

解除ボタンのVBA

フォームを表示した時の並べ替えの設定

コマンドボタンで並べ替えを設定したり、解除することもできますが、フォームを表示したときに、日付の昇順にもできます。

フォームのプロパティの[並べ替え]で[日付]を指定します。そして、[読み込み時に並べ替えを適用]を[はい]にします。

参考[読み込み時に並べ替えを適用]を[いいえ]にすると、並べ替えをして解除せずそのまま閉じても、次にフォームを開くときは、解除されて既定の並びになります。既定は[はい]です。

プロパティの[並べ替え]での設定については、フォームでのレコードの並べ替えを参照してください。

フォームでのレコードの並べ替え(プロパティシートで設定)

Accessのフォームでレコードの並べ替えは、フォームのプロパティで行うことができます。 下のようなテーブルを基に作成した帳票フォームがあり ...

続きを見る

フォームのプロパティの[並べ替え]で[日付]を指定

すると、以下のように日付フィールドの昇順で表示されるようになります。

日付の昇順に並んだフォーム

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

Profile

-Windows 8 & Office 2013 Access 2013

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.