• 締切済み

[Access2013]リストボックスの値指定

hatena1989の回答

回答No.2

> 正規化する場合、みかん、りんご両方と結びついている場合、 > リスト表示は2行になってしまいませんでしょうか? > 2行で出すことだけはどうしても避けたいので現状の様な形になっています。 なぜ、避けたいのでしょうか。 人間が見た場合の見やすさからでしょうか。 データベースにしているとういことは、 大量をデータの集計、検索、抽出、演算などのデータ操作を高速にしたいということだと思います。 その場合、正規化されたテーブル設計でないと、データベースの機能を活かせないので、 複雑で重い処理になってしまいます。データベースにしている意味がありません。 現状のままでいくならExcelの方がよほどシンプルで高速な処理になるでしょう。 データとしては、正規化した形で持ち、 表示するときに見やすいように1行に変換するようにする、 というのが順当な設計だと思います。

mentaiko2
質問者

補足

最低数万件と書いたのですが 実は数十万件はありそうで且つ、リンゴ;みかんとしている部分の個数が各10個ほどある上に同様の結びつきが1テーブルの中に4か所ほどあるのでので子テーブルにして一覧で表示する場合数百万件以上になってしまうからというのが理由です。 Join文で相当時間がかかるので正規化をしても逆に処理速度が落ちるだろうと判断しています。 DBの基本理念として正規化したほうがいいという事は理解できているのですが、今回のような場合、 >表示するときに見やすいように1行に変換するようにする、 というのも結局ループ処理にするしかない(入っているりんご;みかん等の個数が不定なので)と思うのですが処理時間はそんなに違うものなのでしょうか?

関連するQ&A

  • アクセス コンボボックスのリストの条件を指定する

    コンボボックスで表示されるリストを条件に応じて色々に変更できますか? テーブル1 ID 種類   品名 1 やさい  白菜 2 やさい  にんじん 3 くだもの りんご 4 くだもの みかん フォーム1 種類 やさい 品名 ___ コンボボックスリスト        白菜        にんじん 現在は、コンボボックスのリスト(値集合ソース)を テーブル1に指定しておりますので、4個全部表示されてしまいますが、 これを、上で入力した「やさい」を参考にして 「やさい」に該当する「白菜」と「にんじん」しか表示されないようにしたいのです。 よろしくお願いいたします。

  • リストボックスの複数選択について

    ACCESS2003を使っています。 入力用フォームにリストボックスを作って 複数選択するようプロパティで変更しました。 この情報をテーブル上に反映させることができません。 どうしたらいいのかお教えください。 具体的には 入力用フォームに りんご(*) みかん かき(*) スイカ   (*)印は黒反転 この状態で入力するとテーブル上に りんご かき というように表示するようにしたいのです。

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。

  • リストボックスについて

    VBA初心者です。 VBAで以下の処理に大変困っております。 <処理内容> 1.リストボックスにある値を選択して、OKボタンを押す。 2.「1.」で選択した値をセルA1に出力。 3.「1.」で選択する値が複数ある場合は、セルA1の値は コンマをつけて出力。 <例1> ----------------------- <リストボックス1> みかん りんご トマト aaa01 ----------------------- ・選択が一つの場合 「みかん」を選択して場合、OKボタンを押す。 セルA1への出力内容 みかん ・選択が複数の場合 「みかん」、「トマト」、「aaa01」を選択して、OKボタンを押す。 セルA1への出力内容 みかん、トマト、aaa01 ※ユーザフォームの処理です。 まったくわかりません。 明日中に仕上げなければいけないため大変困っております。 どなたか御教授をお願い致します。 宜しくお願い致します。

  • Accessでチェックボックスからの入力を受け付けない

    お世話になります。 Access2003を使い、フォームにチェックボックスを作りました。  チェックボックスの値をテーブルに反映させるために、「チェックボックス」-「プロパティ」-「コントロールソース」より、該当テーブルの列を指定しました。 フォームビューにて、チェックボックスをクリックすると「このフォームは読み取り専用です」と言われ、チェックボックスへの操作は拒否されてしまいます。  どのようにすれば、フォームのチェックボックスから入力した値が、テーブルに反映できるのでしょうか?  なお、該当テーブルの列はyes/no型に指定しています。 よろしくお願いします。

  • リストボックスで表示されている値を取得したい!

    たびたびお世話になります。 まだまだ勉強中で、調べても分からないので、質問させていただきます。 よろしくおねがいいたします。 Smarty + php で画面をつくっています。 リストボックスに、phpで設定した値をだしています。 設定しているのはKey と 値です。 0 りんご 1 みかん のように。 画面でリストボックスから選択すると、りんご やみかん のように値がみえますが、PHPで値を取得すると 0 や 1 のKeyです。 PHP側での処理で、Key と 値の両方を使いたいのです。 このため、画面のリストボックスの横にhiddenでテキストボックスを追加し、選択されたタイミングでTPL内のJavaScriptで、値をテキストボックスに設定し、画面終了時にPHPへPOST渡しをしようと考えました。 <select onblur="fnGetName(this)"~ とすると、キーの方しか取得できません。 どうすれば、和名(値)を取得できるのでしょうか 説明が下手ですみません。 よろしくお願いいたします。

  • 【Access】コンボボックスの値の変更方法

    フォームにコンボボックスを配置し、下記の動作をさせたいと思ったのですが、1は出来たものの2が出来ませんでした(値集合ソースの中身は表示されるものの、選択してもコンボボックスに反映されませんでした)。 1. フォームオープン・・・データベースのcmb1の値より、対応する文字をコンボボックスに表示する。 2. コンボボックスの値の変更・・・プルダウンから値集合ソースに表示されている任意の値を選択し、コンボボックスに設定する。 その為、どうすれば値を変更できるようになるかアドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 なお、初期状態から下記を変更しております。 【テーブル】 テーブル名:tbl フィールド名:ID,cmb1 値:1,2 【フォーム】 フォーム名:form1(コンボボックスを一つ配置) フォームのレコードソース:SELECT Choose(tbl.cmb1,"A","B","C") AS nm_cmb FROM tbl WHERE (((tbl.ID)=1)); コンボボックス 列数:2 列幅:0cm;3cm コントロールソース:nm_cmb 値集合タイプ:値リスト 値集合ソース:1;A;2;B;3;C 連結列:2 上記の状態で起動時のコンボボックスの中身は"B"と表示されるものの、コンボボックスのプルダウンメニューを表示して値を変更しようとしても出来ない事が確認できると思います。 以上、よろしくお願いします。

  • ACCESS.ルックアップの値以外を受け付けないようにしたい。

    ACCESS2007を使用しています。 テーブルのフィールド設定でルックアップを設定しています。 表示コントロール:コンボボックス 値集合タイプ:値リスト ここで、値集合ソースにリストしたもの以外はテーブルに格納されないように したいのですが、可能でしょうか? 「入力チェック」を「YES」にしているのですが、 この場合でもテーブルでの直接入力やフォームを使用しての入力ではエラーがでますが、 Excelからの複数セルまとめてのコピー&貼り付けを行うと貼り付けられてしまいます。 解決する方法がありましたら教えてください。

  • アクセスのテーブルに入力規則を設置したい

    アクセスのテーブルに入力規則を設置したいのですが デザインビューのルックアップタブの 表示コントロールをコンボ ボックス 値集合タイプを値リスト 値集合ソースを:10;;20;;30 にしました。 これで、テーブルビューで値を入れる時に、10と20と30から選択できるようになりましたが この3つの数字以外は入力できないようにしたいです。 再度デザインビューで、入力規則という項目を見つけましたが このような場合、どういう指揮を作ればいいでしょうか?

  • Accessのコンボボックスで関数を使用したい・・・

    Accessのコンボボックスで関数を使用したいのですが、無理でしょうか? 例えば、「りんご」または「みかん」を選択するコンボボックスの場合、 値集合タイプ→値リスト 値集合ソース→"りんご";"みかん" で出来ますよね。 今回作りたいのは、「前月」と「当月」と「次月」を選択するコンボボックスです。(PCのシステム日付を「当月」にして、その前後1ヶ月を「前月」と「次月」にしたい) 値集合タイプ→値リスト にして 値集合ソース→の中でDate関数を使おうとしているのですが、 実際にやってみるとそのまま「Date()」と表示されてしまいます。 やはりVBAを使わないと無理でしょうか? おわかりの方、回答よろしくお願い致します。