Access では、複数の値 (最大 100) を保持する複数値フィールドを作成できます。 また、別のデータ ソースの値にバインドされたユーザー フレンドリな値を表示するルックアップ フィールドを作成することもできます。 ルックアップ フィールドまたは複数値フィールドに対してクエリを実行する場合、一意の考慮事項があります。 詳細については、「複数値フィールドをCreateまたは削除する」および「ルックアップ フィールドをCreateまたは削除する」を参照してください。
この記事の内容
クエリのルックアップ フィールドのバインドされた値を表示する
ルックアップ フィールドの表示値は、既定でクエリ データシート ビューに自動的に表示されます。 クエリを作成するときに、バインドされた値が代わりに表示されるように、この動作をオーバーライドできます。 この例では、ニュー イングランドの状態名を "ルックアップ" する本社テーブルのルックアップ フィールドのバインドされた値を表示するとします。
-
デザイン ビューでクエリを開きます。
-
この例では、 Headquarters テーブルと NewEngland テーブルを 追加します。
2 つのテーブルを結合する必要があります。
詳細については、「 テーブルとクエリを結合する」を参照してください。
-
ルックアップ フィールドと共にフィールドをクエリ デザイン グリッドにドラッグします。 この例では、 City フィールドと NEState フィールドを追加します。
-
[ルックアップ] フィールドをクリックし、[ デザイン ] タブの [ 表示/非表示 ] グループで [ プロパティ シート] をクリックします。 この例では、 NEState フィールドを使用します。
-
プロパティ シートで[ 参照 ]タブを選択し、[ 表示コントロール ]プロパティで[ テキスト ボックス]を選択します。
結果 データシート ビューでクエリを表示すると、表示値の対応するバインドされた値が表示されます。
クエリのルックアップ フィールドの表示値を使用する
ルックアップ フィールドを作成すると、バインドされた値と表示値の間に結合が作成されます。 クエリで Display 値を直接使用することはできませんが、他のデータ ソースの対応する値を使用できます。 この例では、クエリの本社テーブルのルックアップ フィールド NEState の表示値を条件として使用するとします。
-
デザイン ビューでクエリを開きます。
-
この例では、 Headquarters テーブルと NewEngland テーブルを 追加します。
2 つのテーブルを結合する必要があります。 詳細については、「 テーブルとクエリを結合する」を参照してください。
-
使用するフィールドをクエリ グリッドにドラッグします。 この例では、本社テーブルから最初の列に City をドラッグし、 NEState を本社テーブルから 2 番目の列に、 StateName を NewEngland テーブルから 3 番目の列にドラッグします。
-
クエリ グリッドの StateName の [チェック表示] ボックスをオフにします。
-
クエリ グリッドの StateName の [抽出条件] 行に「 バーモント」と入力します。
クエリ条件は StateName 列に基づいています。これは当然、表示値 NEState と同じ値ですが、データシート ビューには表示されません。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 バーモント州を含む行のみが表示されます。
クエリで複数値フィールドを使用する
クエリで複数値フィールドを表示する場合は、1 行にコンマで区切られたすべての値を含む完全な複数値フィールドを表示するか、値ごとに個別の行を持つフラット化されたデータを表示できます。 たとえば、問題ごとに [タイトル] フィールドを含む Issue テーブルと、問題を人に割り当てる AssignedTo 複数値フィールドがあるとします。
複数値フィールドのすべての値を 1 行に表示する
-
デザイン ビューでクエリを開きます。
-
この例では、 Issues テーブルを追加します。
-
フィールドをクエリ デザイン グリッドにドラッグします。 この例では、[ タイトル ] フィールドと [ AssignedTo ] 複数値フィールドをドラッグします。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 予想どおり、1 つの列には [タイトル ] フィールドが表示され、2 番目の列には AssignedTo 複数値フィールドが表示されます。
複数値フィールドの各値を 1 行に表示する (フラット化されたビュー)
-
デザイン ビューでクエリを開きます。
-
この例では、 Issues テーブルを追加します。
-
フィールドをクエリ グリッドにドラッグします。 この例では、[ タイトル ] フィールドと [ AssignedTo.Value ] 複数値フィールドをドラッグします。
[フィールド名]> <形式。Value は、 Value プロパティを文字列として追加します 。AssignedTo フィールドの値。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 [タイトル] フィールドが繰り返され、[AssignedTo] 複数値フィールドの各値が対応する行に表示されるように、データがフラット化されます。
クエリの複数値フィールドに条件を追加する
異なるグリッド列内のクエリ グリッド内の同じ条件の配置は、クエリの結果に大きな影響を与えます。
複数値フィールドのすべての値を 1 行に表示する条件を追加する
Access ではまず結果セットが作成され、条件が追加されます。
-
デザイン ビューでクエリを開きます。
-
この例では、 Issues テーブルを追加します。
-
フィールドをクエリ グリッドにドラッグします。 この例では、 タイトル フィールド、 AssignedTo 複数値フィールド、 AssignedTo.Value 複数値フィールドをドラッグします。
-
クエリ グリッドの AssignedTo.Value の [チェック表示] ボックスをオフにします。
-
クエリ グリッドの AssignedTo.Value の [ 抽出条件 ] 行に「NOT "David Hamilton"」と入力します。
SQL ビューを表示すると便利です。
SELECT Title, AssignedTo FROM Issues WHERE NOT AssignedTo.Value = “David Hamilton”;
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 David Hamilton に割り当てられない 3 つの問題は、既定値で表示されます。
複数値フィールドの各値を 1 行に表示する条件を追加する (フラット化されたビュー)
Access ではまずフラット化された結果セットが作成され、次に条件が追加されます。
-
デザイン ビューでクエリを開きます。
-
この例では、 Issues テーブルを追加します。
-
フィールドをクエリ グリッドにドラッグします。 この例では、[ タイトル ] フィールドと [ AssignedTo.Value ] 複数値フィールドをドラッグします。
-
クエリ グリッドの [AssignedTo.Value] の [ 抽出条件 ] 行に「NOT "David Hamilton"」と入力します。
SQL ビューを表示すると便利です。
SELECT Issues.Title, AssignedTo.Value FROM Issues WHERE NOT AssignedTo.Value = “David Hamilton”
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 David Hamilton に割り当てられない各問題は、フラット化された値で表示されます。
クエリの複数値フィールドに複数の条件を追加する
複数値フィールド内の複数の値で一致を検索する必要がある場合があります。 たとえば、"Kelly Rollin" と "Lisa Miller" の両方が AssignedTo フィールドの値の 1 つになっている問題を確認するとします。
-
デザイン ビューでクエリを開きます。
-
この例では、 Issues テーブルを追加します。
-
フィールドをクエリ グリッドにドラッグします。 この例では、[ タイトル ] フィールドと [ AssignedTo ] 複数値フィールドをドラッグします。
-
クエリ グリッドの [AssignedTo] の [ 抽出条件 ] 行に、「Kelly Rollin」と「Lisa Miller」と入力します。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 "Kelly Rollin" と "Lisa Miller" に割り当てられている 2 つの問題が表示されます。
クエリ内の複数値フィールドのグループ化とカウント
複数値フィールドに格納されている値の計算、グループ化、並べ替えを実行するには、<Fieldname> を使用します。値フィールド。 グループ クエリの詳細については、「クエリ を使用してデータをカウントする」を参照してください。
各ユーザーに割り当てられた問題の数をカウントするには
-
デザイン ビューでクエリを開きます。
-
この例では、 Issues テーブルを追加します。
-
使用するフィールドをクエリ グリッドにドラッグします。 この例では、 AssignedTo.Value を最初の列にドラッグし、 Title を 2 番目の列にドラッグします。
-
[デザイン] タブの [表示/非表示] グループで [集計] をクリックします。
[合計] 行がクエリ グリッドに表示されます。 [グループ化] は、クエリの各フィールドの [ 合計 ] セルに既定で表示されます。
-
クエリ グリッドの [ タイトル] の [ 合計 ] 行で、[ カウント] をクリックします。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 1 人あたりに割り当てられた問題の数は、フラット化されたビューに表示されます。
各問題に割り当てられているユーザーの数をカウントするには
-
デザイン ビューでクエリを開きます。
-
この例では、 Issues テーブルを追加します。
-
使用するフィールドをクエリ グリッドにドラッグします。 この例では、 タイトル を最初の列にドラッグし 、AssignedTo を 2 番目の列にドラッグします。
-
[デザイン] タブの [表示/非表示] グループで [集計] をクリックします。
[合計] 行がクエリ グリッドに表示されます。 [グループ化] は、クエリの [タイトル] フィールドの [ 合計 ] セルに既定で表示されます。 複数値フィールドに対してグループ化操作を直接実行できないため、[割り当て済み] フィールドの [集計] セルに既定で式が表示されます。これは、<Fieldname> だけです。値フィールド。
-
クエリ グリッドの [AssignedTo] の [ 合計 ] 行で、[ カウント] をクリックします。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
結果 問題ごとに割り当てられたユーザーの数は、フラット化されたビューに表示されます。
複数値フィールドで追加クエリを使用する
Append クエリを使用して、複数値フィールドに 1 つの値を挿入できます。 たとえば、Issue テーブルの AssignedTo 複数値フィールドに "Tom Michaels" を追加するとします。
メモ これは、複数値フィールドで動作する Append クエリの唯一の種類です。
-
デザイン ビューでクエリを開きます。
-
Issue テーブルを追加します。
-
[ デザイン ] タブで、[ 追加] をクリックします。
-
[ 追加 ] ダイアログ ボックスで、[ 問題] を選択し、[OK] をクリック します。
-
デザイン グリッドの [ 追加先] 行で、[ AssignedTo.Value] を選択します。
-
デザイン グリッドの [フィールド ] 行に「Tom Michaels」と入力します。
-
追加操作を特定の問題に限定するには、[タイトル] などのフィールドをデザイン グリッドに追加し、[追加] 行から [タイトル] を削除してから、"Issue 3" などの条件を入力します。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
選択した行を追加するかどうかを確認するように求められる場合があります。 [ はい ] をクリックして行を挿入するか、[ いいえ ] をクリックして取り消します。
結果 Issue 3 の AssignedTo フィールドに "Tom Michaels" が追加されました。
重要 複数値フィールドを含むテーブルを参照する追加クエリを使用することはできません。 たとえば、次のクエリは無効です。
INSERT INTO [NewIssues] ( ID, Title, AssignedTo ) SELECT Issues.ID, Issues.Title, Issues.AssignedTo FROM Issues;
複数値フィールドで Update クエリを使用する
Update クエリを使用すると、複数値フィールドの 1 つの値を別の値に変更できます。 この例では、AssignedTo 複数値フィールドを更新して、"Kelly Rollin" を "Lisa Miller" に置き換えます。
-
デザイン ビューでクエリを開きます。
-
Issue テーブルを追加します。
-
[ デザイン ] タブで、[ 更新] をクリックします。
-
AssignedTo.Value をクエリ グリッドにドラッグします。
-
[ Update To]\(更新対象 \) 行に「Lisa Miller」と入力します。
-
[ 抽出条件 ] 行に「Kelly Rollin」と入力します。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
選択した行を追加するかどうかを確認するように求められる場合があります。 [ はい ] をクリックして行を挿入するか、[ いいえ ] をクリックして取り消します。
結果 リサ・ミラーは、対応するすべての問題に対して AssignedTo フィールドの Kelly Rollin を置き換えます。
複数値フィールドで Delete クエリを使用する
複数値フィールドを含むテーブルを操作する場合は、削除クエリを使用して、複数値フィールドの特定の値を含むレコードを削除したり、テーブル内のすべてのレコードの複数値フィールドから特定の値を削除したりできます。 次の例では、Issues テーブルから "David Hamilton" を削除するとします。
重要 削除クエリを使用して、データを含む複数値フィールドを削除すると、そのデータは完全に失われます。削除を元に戻すことはできません。 この理由から、テーブルのフィールドやその他のデータベースのコンポーネントを削除する前に、データベースをバックアップすることをおすすめします。
すべてのレコードの複数値フィールドから特定の値を削除するには
-
[作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。
-
Issue テーブルを追加します。
-
デザイン ビューでクエリを開きます。
-
[ デザイン ] タブで、[ 削除] をクリックします。
-
[ 抽出条件 ] 行に「David Hamilton」と入力します。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
レコードを削除するかどうかを確認するように求められる場合があります。 [ はい ] をクリックしてレコードを削除するか、[ いいえ ] をクリックして取り消します。
結果 David Hamilton は、対応するすべての問題について から削除されます。
複数値フィールドの特定の値を含むレコードを削除する
-
[作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。
-
Issue テーブルを追加します。
-
デザイン ビューでクエリを開きます。
-
[ デザイン ] タブで、[グループの削除] をクリック します 。
-
[ デザイン ] タブの [ 結果 ] グループで、[ 表示 ] の下にある矢印をクリックし、[ SQL ビュー] をクリックします。
-
次の SQL ステートメントを入力します。
DELETE FROM Issues WHERE (((Issues.AssignedTo.Value)="David Hamilton"));
メモ この場合は、デザイン グリッドではなく SQL ステートメントのみを使用できます。 デザイン グリッド ビューに切り替えると、DELETE ステートメントの後にアスタリスク (*) が追加され、SQL ビューから削除する必要があります。
-
[デザイン] タブの [結果] グループで、[実行] をクリックします。
レコードを削除するかどうかを確認するように求められる場合があります。 [ はい ] をクリックしてレコードを削除するか、[ いいえ ] をクリックして取り消します。
結果 David Hamilton が割り当てられているすべての問題は削除されます。