クエリでの複数値を持つフィールドの使用

注:  最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。 このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。私たちの目的は、このコンテンツがお客様の役に立つようにすることです。お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。 簡単に参照できるように、こちらに 英語の記事 があります。

Microsoft Office Access 2007] で、懸案事項を割り当てるユーザーの一覧などの複数の値を格納するフィールドを作成できます。複数値を持つフィールドは、 Windows SharePoint Services 3.0リストに保存されている情報を扱うOffice Access 2007を使用する場合など、特定の状況に合ったとそのリストには、 Windows SharePoint Services 3.0で利用できる複数値フィールドの種類のいずれかを使用するフィールドが含まれています。

ここでは、複数値を持つフィールドの概要と、クエリで複数値を持つフィールドを使用する方法について説明します。

この記事の内容

複数値フィールドとは何ですか。

クエリの概要

クエリで複数値を持つフィールドを表示します。

複数値を持つフィールドに、個々 の値を表示します。

連結値とルックアップ フィールドの表示の値を理解します。

クエリに連結値を表示する方法

複数値を持つフィールドの単純なクエリの抽出条件を入力します。

複数値を持つフィールドの 1 つ以上の値を検索します。

などの影響を理解します。フィールド リストで値フィールド

カウント、グループ化、およびその他の集計関数を使用します。

複数値フィールドで追加クエリを使用します。

複数値フィールドで更新クエリを使用します。

複数値フィールドで削除クエリを使用します。

ページの先頭へ

複数値を持つフィールドとは

たとえば、1 人の従業員を割り当てようとしていた作業に、2 人以上の従業員が必要となったとします。Office Access 2007 では、複数値を持つフィールドを作成して、リストから従業員を選択することができます。

複数値を持つフィールド

コンボ ボックスをクリックすると、選択内容を示すチェック ボックスが表示されます。リストの項目をオンまたはオフにして [OK] をクリックすると、選択内容を送信できます。

複数値を持つフィールドのコンボ ボックス

選択された従業員は、複数値を持つフィールド内に格納され、既定によりコンマ区切りの形式で表示されます。

値がコンマで区切られた複数値を持つフィールド

複数値を持つフィールドの背景には、高度なデザインのデータベースを作成することなく、複数のオプションを選択し、格納するインスタンスをサポートしやすくするという考えがあります。Windows SharePoint Services の SharePoint リストも複数値を持つフィールドをサポートすることから、Windows SharePoint Services との統合でも、複数値を持つフィールドが重要な役割を果たします。

ほとんどのリレーショナル データベース管理システムでは、1 つのフィールドに複数の値を格納することが禁止されているのに、なぜ Office Access 2007 ではこの処理が可能なのでしょうか。その答えは、データベース エンジンにあります。Office Access 2007 のデータベース エンジンは、実際には、複数の値を 1 つのフィールドに格納しているのではなく、非表示のシステム テーブルに個別に格納し、管理しています。データを分割し、分割したデータを再度まとめて 1 つのフィールドに表示する処理は、Access データベース エンジンで自動的に行われます。

技術的な面について説明すると、Access の複数値を持つフィールドは、多対多のリレーションシップをモデルにしています。たとえば、各イベントに複数の担当者を割り当てるようなイベント テーブルがあるとします。複数値を持つフィールド "AssignedTo" を作成して、イベントを複数の担当者に割り当てるとすると、イベントと担当者のリレーションシップは多対多になります。つまり、1 つのイベントに複数の担当者を割り当てることもできれば、1 名の担当者に複数のイベントを任せることもできます。

ページの先頭へ

クエリについて

データベースは主に、最も売れている製品、最も売り上げの多い得意先、販売目標を達成していない分野などの情報を提供する目的で用意されます。適切に設計されているデータベースからこれらの情報を取得する場合、すべてを質問形式で行います。Access データベースから回答を取得するには、クエリを作成して必要な抽出条件を入力します。クエリのデータは、1 つ以上のテーブルから取得できます。質問に対する回答のデータを取得した後、そのデータを表示したり分析したりできます。1 つのクエリを作成すると、そのクエリをフォーム、レポート、グラフ、または他のクエリの基礎として使用できます。

Office Access 2007を使用して、特定の方法で特定のクエリで複数値を持つフィールドを使用できます。クエリで複数値を持つフィールドを表示し、クエリでは、複数値を持つフィールドの個々 の値を表示して、特定の選択されている集計操作と複数値を持つフィールドを使用してアクション クエリを実行できます。

ページの先頭へ

複数値を持つフィールドをクエリで表示する

クエリで複数値フィールドを表示する場合に、すべてのカンマ (,) または値ごとに別々 の行で区切られた値が含まれている、完全な複数値フィールドを表示するかどうかを決める必要があります。たとえば、問題をユーザーに割り当てるに使用する担当者フィールドが含まれている問題テーブルがあるとします。次の手順を使用して、[担当者] フィールドを含むクエリを作成することができます。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"Issues" テーブル) をクリックし、[追加] をクリックします。

  5. [閉じる] をクリックします。

  6. 使用するフィールドをクエリ デザイン グリッドにドラッグします。この例では、件名 フィールドと複数値を持つ 担当者 という名前のフィールドをクエリ グリッドにドラッグします。

  7. [デザイン] タブの [結果] で [実行] をクリックします。

クエリの結果は、次の図のようになります: 1 つの列が問題のタイトルを表示し、2 番目の列には、複数値を持つフィールドが表示されます。

件名 フィールドと 担当者 フィールドを表示しているクエリ結果

デザイン ビューを使用してクエリを作成すると、そのクエリに対応する SQL (構造化照会言語) ステートメントが自動的に作成されます。SQL は、Access で使用されるクエリ言語です。次の手順を実行すると、SQL ビューに切り替えて SQL ステートメントを表示できます。

  1. [デザイン] タブの [結果] で、[ビュー] の下にある矢印をクリックし、[ビュー] メニューを表示します。

  2. [SQL ビュー] をクリックします。

SQL ステートメントは次のようになります。

SELECT Issues.Title, 
Issues.AssignedTo
FROM Issues;

ページの先頭へ

複数値を持つフィールドの個々の値を表示する

それぞれの名前または AssignedTo の値は、別々 の行に表示されるように (とも呼ばれます平面表示) 複数値フィールドの展開担当者を表示したいとします。これを行うには、文字列を追加することで、[] プロパティを指定する必要があります"します。値の"「担当者」フィールド] 行に示すように次のとおりクエリ グリッドで。

件名 と 担当者.Value を表示しているクエリ グリッド

[フィールド] 行に担当者を指定するとが表示されますすべての値 1 行で複数値フィールドでクエリを実行するとします。ただし、担当者] のように、[] プロパティを使用するとが表示されます複数値を持つフィールドには、展開されたフォームの各値は、別々 の行に表示されるようにします。次の手順を使用して、個々 の値を表示するクエリを作成することができます。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"Issues" テーブル) をクリックし、[追加] をクリックします。

  5. [閉じる] をクリックします。

  6. 使用するフィールド (この例では、複数値を持つフィールド AssignedTo.Value) をクエリ グリッドへドラッグします。

  7. [デザイン] タブの [結果] で、[実行] をクリックします。

件名 および個々の 担当者 値を表示しているクエリ結果

デザイン ビューを使用してクエリを作成すると、そのクエリに対応する SQL (構造化照会言語) ステートメントが自動的に作成されます。SQL は、Access で使用されるクエリ言語です。次の手順を実行すると、SQL ビューに切り替えて SQL ステートメントを表示できます。

  1. [デザイン] タブの [結果] で、[ビュー] の下にある矢印をクリックし、[ビュー] メニューを表示します。

  2. [SQL ビュー] をクリックします。

SQL ステートメントは次のようになります。

SELECT Issues.Title, 
Issues.AssignedTo.Value
FROM Issues;

ページの先頭へ

ルックアップ フィールドの連結値と表示値を理解する

複数値を持つフィールドは、ルックアップ フィールドです。ルックアップ フィールドは、別のテーブルまたはクエリまたは値リストから、値を取得するテーブルのフィールドです。Access には、数のバージョンの 1 つの値を持つルックアップ フィールドがサポートされているがします。複数値を持つルックアップ フィールドは、 Office Access 2007にします。ルックアップ フィールドの目的にわかりやすい名前など、ID (またはその他の外部キーの値) などの数値の表示を置き換えるには、します。たとえば、連絡先の ID 番号を表示するには、代わりに、連絡先の名前を表示できます。連絡先の ID 番号は、連結値です。自動的に元のテーブルまたはクエリの中で検索、連絡先の名前に置き換えられます。連絡先の名前は、表示値です。

表示値と連結値を持つ単一値のルックアップ フィールドと同様に、複数値を持つルックアップ フィールドも、ユーザー インターフェイスに表示する表示値と、テーブルに格納する連結値を持っています。複数値を持つフィールドの各エントリについて、その連結値に基づき表示値が検索されます。

これは、アクセス頻度ルックアップの表示] フィールドに格納されている連結値と同じではない値が表示されることを意味します。たとえば、AssignedTo フィールドを使用する前の例では、一連の連絡先の拡張クエリからの従業員 ID の値は [担当者] フィールドに格納されます。複数値フィールドの作成時に、連絡先の拡張クエリを値集合ソースとして選んだします。

これらの従業員 ID は連結値です。ただし、[担当者] フィールドは、ルックアップ フィールドであるために表示されますルックアップの値のセット、クエリ結果: この場合は、連絡先の名前。連絡先の名前は、表示値です。

表示値のデータシートと連結値のデータシート

1. 表示値

2. 連結値

デザイン ビューで複数値を持つフィールドのルックアップ プロパティを表示できます。ここではどのようにします。

  1. Microsoft Office ボタン Office ボタンの画像 をクリックして、[開く] をクリックします。

  2. [ファイルを開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. ナビゲーション ウィンドウで、複数値を持つフィールドが格納されているテーブルを右クリックします。

  4. [デザイン ビュー] をクリックします。

  5. 複数値を持つフィールド (たとえば、担当者) をクリックします。

  6. [フィールド プロパティ] で、[ルックアップ] タブをクリックします。

複数値を持つルックアップ フィールドのプロパティ

ルックアップ フィールドの表示の値と連結値の違いを理解する重要です。[表示] の値は自動的にデータシート ビューで既定で表示されます。ただし、連結値が保存されていると、クエリの抽出条件を使用すると、既定では、他のテーブル結合に使用されます。

ページの先頭へ

連結値をクエリで表示する方法

既定では、表示値がデータシート ビューに自動的に表示されます。クエリを作成すると、この動作を無効にして、代わりに連結値を表示できます。連結値を表示するクエリの作成手順を次に示します。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"Issues" テーブル) をクリックし、[追加] をクリックします。

  5. [閉じる] をクリックします。

  6. 使用するフィールドをクエリ デザイン グリッドにドラッグします。この例では、件名 フィールドと複数値を持つ 担当者.Value という名前のフィールドをクエリ グリッドにドラッグします。

  7. クエリ グリッド内の 担当者.Value フィールドをクリックし、このフィールドにフォーカスを置きます。

  8. [デザイン] タブの [表示/非表示] で [プロパティ シート] をクリックします。

  9. プロパティ シートで、[ルックアップ] タブの "DisplayControl/表示コントロール" プロパティの [テキスト ボックス] を選択します。

クエリ デザインの "DisplayControl/表示コントロール" プロパティ

"DisplayControl/表示コントロール" プロパティを [テキスト ボックス] に変更すると、通常のルックアップ列の動作が無効になり、表示値の代わりに連結値が表示されます。

クエリの結果に表示された連結値

ページの先頭へ

複数値を持つフィールドに簡単なクエリの抽出条件を入力する

「友野司郎」に割り当てられている問題が発生するとします。クエリ グリッドで抽出条件] 行で、クエリの抽出条件を入力することができますが、ルックアップ フィールドの抽出条件を入力すると表示値ではなく、連結値を入力する必要があります。ここでは友野司郎の連結値が 6 を指定します。連絡先の拡張友野のクエリに対応する主キーの値です。

友野に割り当てられた案件を表示するクエリを作成するには、次の操作を行います。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"Issues" テーブル) をクリックし、[追加] をクリックします。

  5. [閉じる] をクリックします。

  6. 使用するフィールドをクエリ グリッドにドラッグします。この例では、件名 フィールドをグリッドの最初の列にドラッグします。次に、担当者 フィールドを 2 番目の列にドラッグします。

  7. クエリ グリッドのタブで、担当者 フィールドの [抽出条件] 行に、「6」と入力します。ここで入力するのは、表示値ではなく連結値です。

    複数値を持つフィールドに抽出条件が設定されたクエリ グリッド

  8. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

クエリを実行すると、結果がデータシート ビューに表示されます。このクエリでは、"友野 司郎" が格納されている行のみが取得されます。

担当者 値に 6 を指定したクエリの結果

デザイン ビューを使用してクエリを作成すると、そのクエリに対応する SQL (構造化照会言語) ステートメントが自動的に作成されます。SQL は、Access で使用されるクエリ言語です。次の手順を実行すると、SQL ビューに切り替えて SQL ステートメントを表示できます。

  1. [デザイン] タブの [結果] で、[表示] メニューを表示するビューの [矢印] をクリックします。

  2. [SQL ビュー] をクリックします。

SQL ステートメントは次のようになります。

SELECT Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

ID 番号の代わりにテキストを検索する

面倒な場合は、番号は ID のエントリを検索する場合、検索値として「友野司郎」の名前を入力したいですか。これを実行するには、名前を表すテキストが含まれているクエリの結果内のフィールドが必要です。その方法フィールドである「友野司郎」を検索することができます。

担当者.Value フィールドの連結値は ID でありそのまま使用できないため、ID を入力してそのフィールドをフィルタ処理する必要があります。

この例では、テーブル内に担当者名フィールドがありません。代わりに、複数値を持つ 担当者 フィールドのデータが提供されるソース クエリにこのフィールドがあります。複数値を持つフィールド用のソース テーブルまたはソース クエリを、複数値を持つフィールドがあるテーブルに結合することにより、ソース テーブルまたはソース クエリのフィールド (この例では担当者名) をクエリの結果に格納することができます。これにより、複数値を持つフィールドではなく担当者名のフィールドを検索できます。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"案件" テーブル) をクリックし、[追加] をクリックします。

  5. [テーブルの表示] ダイアログ ボックスで、[クエリ] タブをクリックし、複数値を持つフィールドのソースとして使用するクエリ (この例では "連絡先 (拡張)") をクリックします。次に、[追加] をクリックします。

  6. [閉じる] をクリックします。

  7. クエリ グリッドに使用するフィールドをドラッグします。この例では、案件テーブルから、グリッドの左端の列にタイトルをドラッグします。連絡先の拡張クエリから 2 番目の列に連絡先の名前をドラッグし、[表示] チェック ボックスをオフにします。次に、3 列目に担当者をドラッグします。

  8. 連絡先 (拡張) クエリの ID フィールドと 担当者.Value フィールドの間に、次に示すような結合線が表示されない場合は、連絡先 (拡張) クエリの ID フィールドをクリックし、案件 テーブルの 担当者.Value フィールドまでドラッグします。

    結合線が表示されます。

    他のすべての結合線が表示されている場合は、それらを削除します。タスクを削除するには、結合線を強調表示し、Del キーを押します] をクリックします。

  9. クエリ グリッドで、連絡先名の [抽出条件] 行に「友野司郎」を入力します。

    "Kelly Rollin" が含まれる AssignedTo 条件を使用するクエリ グリッド

  10. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

クエリを実行すると、データシート ビューで、結果が表示されます。クエリの結果「友野司郎」が表示されている行のみを表示することに注意してください。この手法は、複数値を持つフィールドに値ごとに別々 の行を返すので、元のテーブルまたはクエリの ID と担当者の間の結合行ごとに連絡先の名前のフィールドを完全な名前も含まれています。連絡先の名前は、ルックアップ フィールドではなく計算フィールドであるために、連結値と表示値はありません。1 つの値だけが、連絡先の名前。したがって、「友野司郎」ここでは、一致するようにテキストを入力します。

[AssignedTo] に "友野 司郎" を含むクエリ結果

デザイン ビューを使用してクエリを作成すると、そのクエリに対応する SQL (構造化照会言語) ステートメントが自動的に作成されます。SQL は、Access で使用されるクエリ言語です。次の手順を実行すると、SQL ビューに切り替えて SQL ステートメントを表示できます。

  1. [デザイン] タブの [結果] で、[表示] メニューを表示するビューの [矢印] をクリックします。

  2. [SQL ビュー] をクリックします。

SQL ステートメントは次のようになります。

SELECT Issues.Title, Issues.AssignedTo 
FROM [Contacts Extended] INNER JOIN Issues ON
[Contacts Extended].ID = Issues.AssignedTo.Value
WHERE ((([Contacts Extended].[Contact Name])=
"Kelly Rollin"));

ページの先頭へ

複数値を持つフィールドの複数の値を検索する

場合によっては、1 つ以上の値の一致を検索する必要があります。「友野司郎」と「根本明美」の両方で [担当者] フィールドの値の間では、これらの問題が発生するとします。友野司郎の連結値は 6、根本明美の連結値は 10 です。複数値フィールドのいくつかの条件を指定するには、AND と OR 演算子を使用することができます。

このクエリを作成するには、次の手順を実行します。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"Issues" テーブル) をクリックし、[追加] をクリックします。

  5. [閉じる] をクリックします。

  6. 使用するフィールドをクエリ グリッドにドラッグします。この例では、件名 フィールドをグリッドの最初の列にドラッグします。次に、担当者 フィールドを 2 番目の列にドラッグします。

  7. クエリ グリッドで、担当者 フィールドの [抽出条件] 行に「6 And 10」と入力します。

    複数値を持つフィールドに AND が使用されているクエリ

  8. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

クエリを実行すると、結果がデータシート ビューに表示されます。

複数値を持つフィールドに AND が使用されたクエリの結果

結果には、友野 司郎と根本 明美の両方が割り当てられている案件のみが表示されます。デザイン ビューを使用してクエリを作成すると、そのクエリに対応する SQL (構造化照会言語) ステートメントが自動的に作成されます。SQL は、Access で使用されるクエリ言語です。次の手順を実行すると、SQL ビューに切り替えて SQL ステートメントを表示できます。

  1. [デザイン] タブの [結果] で、[表示] メニューを表示するビューの [矢印] をクリックします。

  2. [SQL ビュー] をクリックします。

SQL ステートメントは次のようになります。

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
And (Issues.AssignedTo.Value)=10));

AND 演算子の代わりに OR 演算子を使用する

「友野司郎」または「根本明美」が表示される行の一覧を表示するクエリを変更するとします。AND 演算子ではなく、OR 演算子を使用する SQL ステートメントを編集することができます。ステートメントは、次のような [なります。

SELECT Issues.Title, Issues.AssignedTo
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6
Or (Issues.AssignedTo.Value)=10));

クエリを実行すると、結果がデータシート ビューに表示されます。

複数値を持つフィールドに Or 演算子を使用したクエリ

結果には、友野 司郎と根本 明美のいずれかが割り当てられている案件のみが表示されます。

ページの先頭へ

フィールド リストに .Value フィールドを含めたときの効果を理解する

などの影響を理解することが重要なします。[クエリの出力列 (リスト] を選びます) の一覧で値フィールドです。クエリを処理するとき、最初の手順は、WHERE 句の影響せずに結果を生成またはフィルターするとしています。その最初のセットにフィルターが適用されます。役に立ちます、そのため、その結果は、最初に、生成されると、WHERE 句でフィルターによって制限されている [セットのものと考えるにします。たとえば、次の例を検討してください。

SELECT Issues.Title, AssignedTo
FROM Issues
WHERE NOT AssignedTo.Value = 3;

フィルタ処理する前の最初の結果セットは次のようになります。

役職

担当者

案件 1

阿部 信夫, 江田 真理子

2 の問題

鈴崎 礼子, 友野 司郎, 藤巻 陽子, 根本 明美

問題 3

河崎 聖一, 友野 司郎, 江田 真理子, 村中 真人

4 の問題

山越 美樹, 根本 明美

5 の問題

阿部 信夫, 鈴崎 礼子

6 の問題

田山 雄一, 友野 司郎

7 の問題

河崎 聖一, 藤巻 陽子

8 の問題

阿部 信夫

問題 9

友野 司郎, 根本 明美

10 の問題

江田 真理子, 村中 真人

次に、最初の結果セットをフィルタ処理し、ID が 3 の阿部 信夫が含まれていない行を選択します。

役職

担当者

2 の問題

鈴崎 礼子, 友野 司郎, 藤巻 陽子, 根本 明美

問題 3

河崎 聖一, 友野 司郎, 江田 真理子, 村中 真人

4 の問題

山越 美樹, 根本 明美

6 の問題

田山 雄一, 友野 司郎

7 の問題

河崎 聖一, 藤巻 陽子

問題 9

友野 司郎, 根本 明美

10 の問題

江田 真理子, 村中 真人

これで、2 番目の例を検討してください: が含まれる、します。フィールド リストで値フィールドです。最初に注意してください方法が存在します。値フィールドでは、フィルター処理前に、最初の結果セットを変更します。

SELECT Issues.Title, AssignedTo.Value
FROM Issues
WHERE NOT AssignedTo.Value = 3;

フィルタ処理する前の最初の結果セットは次のようになります。

役職

担当者

案件 1

阿部 信夫

案件 1

江田 真理子

2 の問題

鈴崎 礼子

2 の問題

友野 司郎

2 の問題

根本 明美

2 の問題

藤巻 陽子

問題 3

江田 真理子

問題 3

河崎 聖一

問題 3

友野 司郎

問題 3

村中 真人

4 の問題

根本 明美

4 の問題

山越 美樹

5 の問題

阿部 信夫

5 の問題

鈴崎 礼子

6 の問題

友野 司郎

6 の問題

田山 雄一

7 の問題

河崎 聖一

7 の問題

藤巻 陽子

8 の問題

阿部 信夫

問題 9

友野 司郎

問題 9

根本 明美

10 の問題

村中 真人

10 の問題

江田 真理子

次に、最初の結果セットをフィルタ処理し、ID が 3 の阿部 信夫が含まれていない行のみを選択します。

役職

担当者

案件 1

江田 真理子

2 の問題

鈴崎 礼子

2 の問題

友野 司郎

2 の問題

根本 明美

2 の問題

藤巻 陽子

問題 3

江田 真理子

問題 3

河崎 聖一

問題 3

友野 司郎

問題 3

村中 真人

4 の問題

根本 明美

4 の問題

山越 美樹

5 の問題

鈴崎 礼子

6 の問題

友野 司郎

6 の問題

田山 雄一

7 の問題

河崎 聖一

7 の問題

藤巻 陽子

問題 9

友野 司郎

問題 9

根本 明美

10 の問題

村中 真人

10 の問題

江田 真理子

フィルタを適用する前と後の結果セットを表示すると、正しいクエリ結果が得られたことが簡単にわかります。

ページの先頭へ

他の集計関数をカウント、グループ化、および使用する

複数値を持つフィールドに格納されている値のグループに対して計算を実行することがあります。たとえば、数の問題は、各ユーザーに割り当てられたですか。各問題には、多くの人が割り当てられますか。集計クエリの集計関数を使用し、この種類の計算を行うことができます。

集計関数は、一連の値の計算を実行し、1 つの値を返します。 します。たとえば、 SumCount、および平均は、3 つの合計を計算するために使用できる集計関数がします。レコードのグループは、すべてのレコードの合計を計算することができます。グループをまとめると、クエリ グリッドにフィールドを選択します。

次の手順は、各担当者に割り当てられている案件の数をカウントするクエリの作成方法を示しています。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"Issues" テーブル) をクリックし、[追加] をクリックします。

  5. [閉じる] をクリックします。

  6. 使用するフィールドをクエリ グリッドにドラッグします。この例では、担当者.Value フィールドをグリッドの最初の列にドラッグします。次に、件名 フィールドを 2 番目の列にドラッグします。

  7. [デザイン] タブの [表示/非表示] で [集計] をクリックします。

    クエリ グリッドに [集計] 行が表示されます。既定では、クエリの各フィールドの [集計] セルに [グループ化] が表示されます。

  8. クエリ グリッドで、件名 フィールドの下にある [集計] 行の [カウント] をクリックします。

  9. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

クエリをデザインする際に、グループ化のために使用するフィールドと集計 (計算) を使用するフィールドを指定します。この例では、担当者が、グループ化に使用するフィールドとタイトルが集計の計算に使用するフィールドです。グループ化のために使用するフィールドの集計] 行でグループ化]を選択します。合計の計算に使用するフィールド (合計平均など) の計算の種類を選択します。複数値を持つフィールドをグループ化のために使用するときにする必要がありますを使用することに注意してくださいします。値フィールドです。この例では、グループ化のための担当者フィールドを使うことはできません: [担当者] フィールドを使用する必要があります。使用することも必要があります。値フィールドの並べ替えの複数値フィールドを使用するとします。

注: 複数値を持つフィールドをグループ化に使用する場合、.Value フィールドを使用する必要があります。複数値を持つフィールドを並べ替えに使用する場合、.Value フィールドを使用する必要があります。

クエリを実行すると、結果がデータシート ビューに表示されます。

各担当者に割り当てられた案件をカウントするクエリ

このクエリの SQL ステートメントを表示するには、次の手順を実行して SQL ビューに切り替えます。

  1. [デザイン] タブの [結果] で、[ビュー] の下にある矢印をクリックし、[ビュー] メニューを表示します。

  2. [SQL ビュー] をクリックします。

SQL ステートメントは次のようになります。

SELECT Issues.AssignedTo.Value, 
Count(Issues.Title) AS CountOfTitle
FROM Issues
GROUP BY Issues.AssignedTo.Value;

各案件に割り当てられている担当者の数を調べるとします。件名 を使用してグループ化し、複数値を持つフィールドの計算方法として [カウント] を選択します。このクエリを作成するには、次の手順を実行します。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. [テーブルの表示] ダイアログ ボックスで、複数値を持つフィールドを含むテーブル (この例の場合、"Issues" テーブル) をクリックし、[追加] をクリックします。

  5. [閉じる] をクリックします。

  6. 使用するフィールドをクエリ グリッドにドラッグします。この例では、件名 フィールドをグリッドの最初の列にドラッグします。次に、担当者 フィールドを 2 番目の列にドラッグします。

  7. [デザイン] タブの [表示/非表示] で [集計] をクリックします。

    クエリ グリッドで、[集計] 行が表示されます。グループ化が既定で [クエリの [タイトル] フィールドの [集計] セルに表示されます。AssignedTo フィールドには、[集計] セルに既定で表示する: これは、複数値を持つフィールドのグループ化] 操作を実行することができないためです。のみを複数値を持つの操作を行うことができます。値フィールドです。

  8. クエリ グリッドで、担当者 フィールドの下にある [集計] 行の [カウント] をクリックします。

  9. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

クエリを実行すると、結果がデータシート ビューに表示されます。

案件ごとの担当者数のカウントが表示されたクエリの結果

このクエリの SQL ステートメントを表示するには、次の手順を実行して SQL ビューに切り替えます。

  1. [デザイン] タブの [結果] で、[表示] メニューを表示するビューの [矢印] をクリックします。

  2. [SQL ビュー] をクリックします。

SQL ステートメントは次のようになります。

SELECT Issues.Title, 
Count(Issues.AssignedTo) AS CountOfAssignedTo
FROM Issues
GROUP BY Issues.Title;

注: この SQL SELECT ステートメントではありません Count(Issues.AssignedTo) または Count(Issues.AssignedTo.Value) を使用するかどうかなど、結果は同じです。

ページの先頭へ

複数値を持つフィールドで追加クエリを使用する

挿入クエリを使用すると、複数値を持つフィールドに単一の値を挿入できます。たとえば、案件用の複数値を持つ 担当者 フィールドに "友野 司郎" を追加するとします。最初に、その案件と友野 司郎の担当者レコードの主キーの値を確認します。案件の値が 10 で友野の値は 6 だとします。

次の手順は、このクエリの作成方法を示しています。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

    Access のリボンの画像

  4. テーブルの表示] ダイアログ ボックスで、[閉じる] をクリックします。

  5. [デザイン] タブの [結果] で、[表示] メニューを表示するビューの [矢印] をクリックします。

  6. [SQL ビュー] をクリックします。

  7. SQL ビューで、次の SQL ステートメントを入力します。

    INSERT INTO Issues ( AssignedTo.[Value] )
    VALUES (6)
    WHERE ID = 10;
  8. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

    選択した行を追加するかどうかを確認するメッセージが表示されます。[はい] をクリックして、行を挿入またはを取り消すには[いいえ] をクリックします。

指定した案件の 担当者 フィールドのリストに友野が表示されます。この挿入クエリの形式でのみ、複数値を持つフィールドを処理できます。

注: 追加クエリは、別の既存のテーブルに 1 つのテーブルからレコードを追加するために使用クエリです。Office Access 2007で複数値を持つフィールドを含むテーブルを参照する追加クエリを使うことはできません。たとえば、次のクエリが正しくない:

INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;

ページの先頭へ

複数値を持つフィールドで更新クエリを使用する

更新クエリを使用して、既存のレコードに値を変更することができます。更新クエリを使用して複数値を持つフィールドを含むテーブルを更新すると、複数値を持つフィールドの 1 つの値を別の値に変更できます。特定の問題の担当者の複数値を持つフィールドを更新すると、たとえば、「根本明美」である「友野司郎」を置換するにはまず、および友野と根本の問題と連絡先のレコードの主キーの値を確認します。問題の値が 8、友野] の値が 6 と根本の値は、10 します。

次の手順は、このクエリの作成方法を示しています。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

  4. テーブルの表示] ダイアログ ボックスで、[閉じる] をクリックします。

  5. [デザイン] タブの [結果] で、[表示] メニューを表示するビューの [矢印] をクリックします。

  6. [SQL ビュー] をクリックします。

  7. SQL ビューで、次の SQL ステートメントを入力します。

    UPDATE Issues 
    SET Issues.AssignedTo.Value = 10
    WHERE (((Issues.AssignedTo.Value)=6)
    AND ((Issues.ID)=8));

    注: 

    • 更新するレコードのみを識別する WHERE 句を常に含める必要があります。WHERE 句がないと、変更する必要のないレコードも更新されます。WHERE 句が含まれていない変更クエリは、テーブル内のすべての行を変更します。

    • 変更する 1 つの値を指定できます。

  8. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

    レコードを変更するかどうかを確認するメッセージが表示されます。[はい] をクリックして行を変更するか、または [いいえ] をクリックしてキャンセルします。

指定した案件の 担当者 フィールドで、友野 司郎が根本 明美に置き換えられます。

ページの先頭へ

複数値を持つフィールドで削除クエリを使用する

削除クエリを使用すると、テーブルからレコードを削除します。複数値を持つフィールドを含むテーブルを使用するときに複数値フィールドでは、特定の値を含むレコードを削除するのには、またはすべてのテーブルのレコードで複数値を持つフィールドから特定の値を削除するのには削除クエリを使用することができます。

テーブルのすべての担当者フィールドから「友野司郎」を削除するとします。クエリを作成するには、次の手順を使用します。

  1. Office ボタンの画像 (Microsoft Office ボタン) をクリックしてから、[開く] をクリックします。

  2. [開く] ダイアログ ボックスで、データベースを選択して開きます。

  3. [作成] タブの [その他] で、[クエリ デザイン] をクリックします。

  4. テーブルの表示] ダイアログ ボックスで、[閉じる] をクリックします。

  5. [デザイン] タブの [結果] で、[表示] メニューを表示するビューの [矢印] をクリックします。

  6. [SQL ビュー] をクリックします。

  7. SQL ビューで、次の SQL ステートメントを入力します。

    DELETE Issues.AssignedTo.Value
    FROM Issues
    WHERE (((Issues.AssignedTo.Value)=6));
  8. [デザイン] タブの [結果] で [実行] をクリックして、クエリを実行します。

    レコードを削除するかどうかを確認するメッセージが表示されます。[はい] をクリックしてレコードを削除するか、または [いいえ] をクリックしてキャンセルします。

次のクエリの例では、問題のテーブルからすべてのレコードは削除されません。担当者複数値を持つフィールドの各レコードに値が表示される場所からその値を削除します。案件テーブルからレコードを削除する場合は、SQL ステートメントの削除句には、次のフィールドを指定しないでください。たとえば、「友野司郎」だれに問題が割り当てられているユーザーの一覧にあるすべての問題を削除するには、次の SQL ステートメントを入力します。

DELETE 
FROM Issues
WHERE (((Issues.AssignedTo.Value)=6));

注: 削除クエリを使用してレコードを削除するときは、細心の注意を払ってください。いったんレコードを削除すると、そのレコードを復元することはできません。

ページの先頭へ

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×