コンボボックス等の「値集合ソースの値のみの表示」プロパティ

 コンボボックスとリストボックスに存在する「値集合ソースの値のみの表示」というプロパティについてです。このプロパティは、「複数の値の許可」プロパティが「はい」になっていないと機能しませんのでご注意ください。
 以下ではテーブルでのコンボボックスを例に説明します。

f:id:accs2014:20170623000214p:plain:right:w400

 さて、右のテーブルにおいて「保有資格」列がコンボボックスによる入力となっており、複数の値を許可する設定となっています。


f:id:accs2014:20170622234833p:plain:right:w400

 デザインビューを開きます。「複数の値の許可」が「はい」になっているのが確認できます。
 「値集合ソースの値のみの表示」はデフォルトでは「いいえ」ですが、ここで「はい」にしてみます。


f:id:accs2014:20170622234830p:plain:right:w400

 さて、値集合ソースに列記されたリストから「";初級シスアド"」を削ります。
 これでコンボボックスの選択肢から「初級シスアド」が消えるのは間違いありませんが…


f:id:accs2014:20170622234827p:plain:right:w400

 再びデータシートビューで見ると、値として記録されていた「初級シスアド」も表示されなくなっているのが分かります。
 これが「値集合ソースの値のみの表示」を「はい」にした効果です。「いいえ」だと値集合ソースを変更してもすでに記録されている値の表示内容は変わりません。


f:id:accs2014:20170622234823p:plain:right:w400

 さて、注意すべき点があります。上記の手順により、すでに記録されている値が表示されなくなったといっても、値そのものは削除されていません。
 そこで上記テーブルに基づくクエリを作成してみます。
 確かに「保有資格」列を表示しても「初級シスアド」は表示されません。しかし…


f:id:accs2014:20170622234857p:plain:right:w400

 「保有資格.value」列を表示した場合は「初級シスアド」が表示されます。上記のようにカンマ区切りで表示させている場合は表示されないのですが、やはり値そのものは残っているのです。
 また、テーブルに戻り「保有資格」列の値集合ソースに「";初級シスアド"」を再度加えると、テーブルのデータシートビューも元に戻ります。