* Accessのような複数値を持つフィールドを作りたい [#x97328d4]
 |RIGHT:|LEFT:|c
 |~ページ|[[OpenOffice.org FAQの登録ページ]]|
 |~投稿者|takeru|
 |~分類|#listbox3(Q&A,faq03,class)|
 |~優先順位|#listbox3(低,faq03,priority)|
 |~状態|#listbox3(回答中,faq03,state)|
 |~状態|#listbox3(完了,faq03,state)|
 |~カテゴリー|#listbox3(Base データベース,faq03,category)|
 |~投稿日|2011-07-18 01:37:28 (月)|
 |~OS|Windows7 64bit|
 |~依存するページ||
 |~バージョン|#listbox3(3.3.0,faq03,version)|
 
 ** メッセージ [#z0a8ba1f]
 |LEFT:|c
 |回答ページでは行末に「~」を付加する必要はありません|
 AccessもBaseもまったくの初心者です~
 
 下記リンク先のAccessのように複数値を持つフィールドを作成したいと思いますが~
 どのようにすればよろしいよろしいでしょうか?~
 http://office.microsoft.com/ja-jp/access-help/HA001233722.aspx
  
 
 
 ----
 ***複数値を持つフィールド [#f6eb38a5]
 >M.Kamataki (2011-07-18 07:43:02 (月))~
 ~
 http://office.microsoft.com/ja-jp/access-help/HA001233722.aspx#BM1~
 ~
 こちらに「Office Access 2007 のデータベース エンジンは、実際には、複数の値を 1 つのフィールドに格納しているのではなく、非表示のシステム テーブルに個別に格納し、管理しています。」とありますから、「複数値を持つフィールド」が作成されているわけではないようです。続く部分「データを分割し、分割したデータを再度まとめて 1 つのフィールドに表示する処理は、Access データベース エンジンで自動的に行われます。」を読むと、これはUIで実現しているんでしょう。~
 ~
 つまり、データベースとしてのAccessの機能ではなく、フォームを含めたUIの機能で実現していると言えます。このUI(コンボボックスで複数の値をチェックボックスで選べるもの)はBaseで実現するのは難しいです。~
 ~
 したがって、Baseで実現するなら、単純に複数のフィールドを用意しておく、フォームでも複数の入力用コントロールを用意する必要があります。カンマ区切りで1つのフィールドのように見せるには、クエリーでCONCAT関数を用いて複数フィールドを1つにまとめれば実現できると思います。~
 ~
 同じ趣旨の質問が以下の「教えて!goo」でも投稿されていますね。~
 ~
 http://oshiete.goo.ne.jp/qa/5862205.html~
 ~
 ※Baseが標準で使用するデータベースHSQLDBでは、CONCAT関数でまとめられるのは2フィールドまでだったりします。3つ以上のフィールドをまとめるためにはネストする必要があります。faq/6/181「フィールドとフィールドの連結」をご覧ください。~
 
 //
 ***ありがとうございます [#gaf05cff]
 >takeru (2011-07-23 00:14:01 (土))~
 ~
 CONCAT関数というものがあるんですね~
 3つ以上のフィールドだと入れ子にしないといけないなんて少し面倒ですね~
 
 //
 #article