#659 | 複数値フィールドの中の値を条件に抽出するには? | クエリ | |
テーブルのデザインにおいて、フィールドに対して下記のようなプロパティ設定を行うと、ひとつのフィールドに複数の値を保存することができます。
その結果、データシートビューでは次のような表示、項目の選択が可能となります。 このとき、ある1レコード・1フィールドの値と、その中にある複数の値とは、1対多の関係を持った2つのテーブルのように考えることができます。 まず一般的な1対多の2つのテーブルを見てみます。
今後は、同様にして、複数値のフィールドを持ったテーブルについて上記と同じようなクエリ操作をしてみます。
以上のことから、複数値を持つフィールドを「●●」としたとき、「●●.Value」というフィールドをグリッドに配置することで、複数値の中の1つ1つの値を条件としてレコードを並べ替えたり抽出したりすることができることになります。 たとえば、上記クエリにおいて「仕入先」に「2」を含むレコードを抽出したいのであれば、下記のような選択クエリを作ればよいことになります。 また、「仕入先」に「2」または「15」を含むレコードを抽出し、かつ仕入先順に並べ替えたい場合は、下記のようなクエリとなります。 さらに、「仕入先」の複数値の値集合ソースとなっているのは「仕入先」テーブルですので、そのテーブルを結合することで仕入先名なども出力させることができます。そのときの結合フィールドは「仕入先.Value」と「仕入先ID」です。 以上のように、『●●.Valueというフィールドを使えばよい』ということを覚えておけば、あとはふつうのクエリと同様に、さまざまな抽出・並べ替え・結合、あるいはアクションクエリなどへの応用も可能です。当然のことながらSQL文をVBAのプログラムで組み立てて実行する際も同様です。 |
|||
|
Copyright © T'sWare All rights reserved |