アルファベット順や数値順ではなく、ユーザー定義の順序 (カスタムまたは論理順序とも呼ばれます) でデータを並べ替える場合があります。 たとえば、月曜日が最初に表示されるように平日を並べ替えると、アルファベット順で並べ替えるよりも意味があり、金曜日が最初に表示されます。 テーブルまたはクエリのデータシート ビュー、またはフォームのフォーム ビューでデータを並べ替えることができます。
目的に合ったトピックをクリックしてください
少数の一意のフィールド値を並べ替える
この手順では、 IIf 関数を使用して従業員のタイトルをランク付けする式を記述します。
まず、Title、FirstName、LastName の 3 つのフィールドを含むテーブルを作成します。 [タイトル] フィールドに、4 つの新しいレコードに対して次の値を入力します。
-
セールス コーディネーターの内部
-
Sales Manager
-
販売員
-
セールス担当副社長
4 つのレコードの [FirstName] フィールドと [LastName] フィールドに、任意の名前を入力します。
-
次に、データシート ビューでテーブルを開きます。
-
[ホーム] タブの [並べ替えとフィルター] で [詳細設定] をクリックし、ショートカット メニューの [フィルター/並べ替えの編集] をクリックします。
-
目的のフィールド (FirstName、LastName、Title など) をグリッドに追加します。
-
最初の空白列の [フィールド ] 行を右クリックし、[ ズーム] をクリックし、次の式を入力します。
IIf ([Title] = "Vice President, Sales", 1, IIf ([Title] = "Sales Manager", 2, IIf ([Title] = "Sales Representative", 3, IIf ([Title] = "Inside Sales Coordinator", 4, 5)))
Title は、ランク付けされている値を含むフィールドの名前です。 引用符で囲まれた値は、フィールドに格納されている個々の値です。 次の数値は、割り当てられたランクです。 前の式では、ランク 1 から 4 を 4 つの異なるタイトルに割り当て、ランク 5 を他のすべてのタイトルに割り当てます。 並べ替えを実行すると、この式に記載されていないタイトルには同じランク (5) が割り当てられます。
-
式を含む列の [並べ替え ] 行で、[ 昇順] をクリックします。
-
[ホーム] タブの [並べ替えとフィルター] で、[フィルターの切り替え] をクリックします。
IIf 関数は、Title フィールドの値に対応する数値を返します。 たとえば、[タイトル] フィールドの値が Sales Manager の場合、割り当てられた数値は 2 です。 [Title]\(タイトル\) フィールドに値が関数の引数としてリストされていない場合 (たとえば、 District コーディネーター)、数値 5 が割り当てられます。 次に、クエリによってこれらの数値が昇順で並べ替えられます。
多数の一意のフィールド値を並べ替える
ランク付けする値が多数ある場合、データを並べ替えるより良い方法は、参照テーブルを作成することです。
Employees テーブルが 50 を超える異なるタイトルを参照しているとします。 最初にルックアップ テーブルを作成し、既存のテーブルを準備して新しいテーブルを検索する必要があります。 次に、2 つのテーブルを関連付け、クエリを作成します。
参照テーブルを作成し、既存のテーブルを変更する
-
タイトルを格納する新しい参照テーブルを作成します。 次の表に示すように、テーブル に tblTitles という名前を付け、フィールドをかっこで囲まれたデータ型に設定します。
TitleID
(AutoNumber)Title
(テキスト)1
セールス担当副社長
2
Sales Manager
3
販売員
4
セールス コーディネーターの内部
-
TitleID フィールドを主キーとして設定します。
-
TblTitles テーブルを検索するように Employee テーブルを変更します。
-
デザイン ビューで、[ タイトル ] フィールドの名前を TitleID に変更します。
-
[ データ型] 列で、[ データ型] を [数値] に変更します。
-
-
[ 全般 ] タブの [ フィールドのプロパティ] で、[ フィールド サイズ] を [長整数] に変更します。
-
テーブルを保存し、データの損失に関する警告を無視します。
-
データシート ビューに切り替えます。
-
タイトルの値に対応する TitleID 値を [タイトル] 列に設定します。
たとえば、Title 値が Sales Manager であるレコードの場合は、「 2」と入力します。 営業担当者の場合は、「 3」と入力します。
-
テーブルを保存して閉じます。
2 つのテーブルを関連付けます
-
[データベース ツール] タブの [リレーションシップ] グループで [リレーションシップ] をクリックします。
-
[ デザイン ] タブの [ リレーションシップ ] グループで、[ テーブルの追加 ] (または [Access で テーブルの表示 ] をクリックします)。
-
tblTitles と Employees を選択し、[追加] をクリックして [リレーションシップ] ウィンドウに追加します。 [テーブルの表示] ダイアログ ボックスを閉じます。
-
TblTitles テーブルから Employees テーブルの TitleID フィールドに TitleID フィールドをドラッグします。
[ リレーションシップの編集 ] ダイアログ ボックスが開きます。
-
2 つの列に表示されるフィールド名が 両方とも TitleID であることを確認し、[ リレーションシップの種類 ] ボックス に [一対多] が表示されるようにします。 必要に応じて、フィールド名を変更できます。
-
[参照整合性] チェック ボックスをオンにします。
-
[作成] をクリックしてリレーションシップを作成します。
[ リレーションシップの編集 ] ダイアログ ボックスが閉じ、変更が保存されます。
-
[ リレーションシップ ] タブを閉じます。
クエリを作成する
-
[作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。
-
[ テーブルの追加 (Access でテーブルを表示 )] ダイアログ ボックスで、[ テーブル ] タブをクリックし、[ 従業員] をダブルクリックし、 tblTitles をダブルクリックします。
-
EmployeeID、LastName、および FirstName フィールドを Employees テーブルから追加し、tblTitles テーブルの Title フィールドをクエリ デザイン グリッドに追加します。
-
データシート ビューに切り替えます。