• ベストアンサー

access2003のフォーム上でのリストボックスの使い方

いつもお世話になっております。 access2003を使っております。 フォーム上にリストボックスを貼り付け、 プロパティーで列見出しを「はい」にし、 列数をたとえば5などにします。そうすると リストボックスにヘッダーが表示されますが、 そこに文字(見出し)を表示させることができません。 どのようにすればいいのかご教示いただけないで しょうか? お手数ですが、よろしくお願いいたします。 #当方の環境にnorthwindなどのサンプルが #インストールされていないもので、できれば #具体的な示唆をいただけないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#182251
noname#182251
回答No.3

リストボックスやコンボボックスの存在意義ですが 1.ユーザーの省力化 2.正しいデータ入力 の二点が考えられます。特に2.がデータベースでは重要と。 名簿入力を例に考えると、「性別」の欄があり、ユーザーに任せると 男/女、おこと/おんな、m/f 等、手間もさることながら、このようなデータを処理するのは容易ではありません。 このような場合はコンボボックス(リストボックスも同様)のプロパティ/値集合タイプを「値リスト」、値集合ソースを「男;女」とセミコロンで区切って入力します。 値集合タイプに「テーブル/クエリ」を使うのは、データ数が多い場合や、動的に対象を変化させたい場合です。例えば地方を「関東」と選択していれば、その6県がクエリーにより選別されるような。 県であれば全部表示しても構わないかもしれませんが、郵便番号データのように10万超データになると、上位からの絞り込みなしに利用は不可能になります。 「連結列」もちょっとわかりにくい所です。これはリレーションの質とユーザーの使いやすさの間に存在する矛盾を解消するために用意されています。在庫管理を例に考えます。 出入庫データ登録時には、商品マスターとのリレーションを取る必要があります。リレーションのキーとしては商品コード、さらに望ましいのは(ユーザの誤操作から保護されている)IDなどです。しかしユーザが記入するときにコードはわかりにくいし、IDになったらお手上げです。そこで表示は「商品名」「摘要」などで、裏ではコードやIDを操作します。具体的にはクエリーに 商品名、摘要、ID があるとして コントロールソース:(出入庫記録の)商品ID 列数:2 連結列:3 にすれば、見えるのは商品名で、レコードされるのはIDになります。クエリー(テーブル)が ID、商品名、摘要 の場合は 列数:3 連結列:1 列幅:0cm;3cm;3cm としても良いです。 以上のような設定にVBAは一切不要です。 ちなみに、クエリーを利用する際には、あらかじめ外部で作成したクエリーではなく、値集合ソースの右側に表示されるクエリービルダボタン「...」を押して、クエリービルダを利用する方が良いです。単に簡便であるというだけではなく、誤消去や誤修正から保護されているからです。

sansan33311
質問者

お礼

fuuten_no_nekoさん またまたご解説ありがとうございました。 当方、初心者なうえ、ネットで雑多な情報を調べて accessを使おうとしているので、断片的な知識だけに なっております。 VBAなしでも必要なことはかなりできるのですね。 かなり助かりました。 ほんとにありがとうございました。

その他の回答 (2)

noname#79209
noname#79209
回答No.2

リストボックスは表示されたリストの中からどれかを選ぶときに使うことはご存じだと思います。 その「リストの元になる物は何か」を指定するのが「値集合タイプ」「値集合ソース」です。 値集合タイプ     値集合ソース --------------------- テーブル/クエリ   テーブル名かクエリ名 値リスト       セミコロンで区切られた値 フィールドリスト   テーブル名かクエリ名 「列見出し」を「はい」にすると 値集合タイプ     列見出しに表示される内容 ----------------------- テーブル/クエリ   テーブルのフィールド名 値リスト       セミコロンで区切られた値の             最初から「列数」で指定された            数の分 フィールドリスト   最初のフィールド名 「列見出し」が「はい」で「列数」が「2」、 「値集合タイプ」が「値リスト」の場合 「値リスト」が商品コード;商品名;A001;リンゴ;A002;ミカン とすると、リストには 商品コード|商品名 ----------- A001   |リンゴ A002   |ミカン と表示されます。 従って、質問者さんが「お礼」の欄で書かれた例で言えば Me.lstList.RowSource = "商品コード;商品名;A001;リンゴ;A002;ミカン" となります。

sansan33311
質問者

お礼

vizzarさん ご丁寧な回答、ありがとうございました。 このあたり、会社にある本を調べたり、ネットで 調べたりしていたのですが、知りたい情報がなかなか みつかりませんでした。 vizzarさんのご説明で値集合タイプ、値集合ソース の違いがわかりました。 どうもありがとうございました。

noname#182251
noname#182251
回答No.1

随分久し振りにアクセスのフォームをいじったので、怪しげですが 1.値集合タイプは何でしょうか 2.値集合ソースは正しく選択されているでしょうか

sansan33311
質問者

お礼

fuuten_no_neko様 早速のご回答ありがとうございました。 値集合タイプ、値集合ソースについては全く 未設定だったのですが、 値集合タイプ:値リスト とすると、From_Loadで Me.lstList.RowSource = "ee" とすると、1列目のヘッダーにeeと表示されました。 申し訳ありません。 不勉強なもので、値集合タイプ、値集合ソースともに 意味がわかっていないので、これから調べようかと 思います。 とりあえずありがとうございました。

関連するQ&A