- ベストアンサー
Accessでコンボボックスのカウント
- Access2010を使って注文管理表を作成する際に、商品のコンボボックスで選択されたタイプごとの個数をカウントしたいです。
- お客様が商品を選択する際、コンボボックスを使用しているため、タイプごとの個数を把握する必要があります。
- 初心者向けのアクセスのため、カウント関数の使い方について教えていただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず、現状のテーブル設計のままで、 例えば、テーブルBから「商品A」フィールドの"タイプ1"の件数を表示するなら、 フォーム上のテキストボックスのコントロールソースを下記のように設定します。 =DCount("*","テーブルB","[商品A]='タイプ1'") ただし、現状のテーブル設計は、データベースとして間違っています。 このままにしておくと、将来、使い物にならなくなり、大幅な修正が必要になります。 そうなる前に、早急に設計を見直すことをお勧めします。 データベースの設計の基本は「正規化」です。 WEBで「正規化」をキーワードに検索して見てください。 いろいろ解説ページが見つかると思います。 読んでも、最初は意味が分からないかもしれません。 未消化でもいいので一通り読んでみてください。 「正規化」の原則に沿ったテーブル設定の一例をあげると下記のようになります。 顧客マスター 顧客ID 数値型 主キー 氏名 テキスト型 フリガナ テキスト型 ・・・その他の顧客情報のフィールド 商品マスター 商品コード 数値型 主キー 商品名 テキスト型 ・・・その他の商品情報のフィールド 商品タイプマスター 商品タイプコード 数値型 主キー 商品コード 数値型 商品タイプ名 テキスト型 受注履歴 受注ID オートナンバー型 主キー 注文日 日付/時刻型 商品コード 数値型 商品タイプコード 数値型 とりあえず上記のようにテーブルを作成して、 リボンの「データベースツール」→「リレーションシップ」をクリックして、 上記のテーブルを表示させて、同じフィールド名同士を結合して、 「参照整合性」にチェックを入れてください。 あとは、ウィザードでフォームやレポートを作成してみてください。 うーん、難しいかな。 エクセルとアクセスはまったく異なるソフトですので、エクセルの感覚でテーブル設計するとたいてい失敗します。 遠回りなようでもAccessの入門書を一冊読破して全体像を掴んでから取り組んだ方がいいかも知れません。
その他の回答 (1)
- hatena1989
- ベストアンサー率87% (378/433)
エクセルはシート上のデータを対象に演算、集計すますので、それに対する関数がいろいろ用意されています。 Accessはテーブルのデータに対して、集計、演算しますので、それに対する関数が用意されています。 ですので、テーブル構成がどうなっいるかが分からないと回答できません。 商品A | 商品B | 商品C | 商品D | ---------------------------------------------- タイプ1 | タイプ4 | タイプ7 | タイプ10 | タイプ2 | タイプ5 | タイプ8 | タイプ11 | タイプ3 | タイプ6 | タイプ9 | タイプ12 | これは、テーブルのデータを表していますか。 商品A、商品B、商品C、商品D という名前のフィールドが存在しているということでしょうか。 お客様を特定するデータはどのように格納されているのでしょうか。 現状のテーブル構成(フィールド名、データ型、主キー設定)を説明いただけますか。 場合によってはテーブル設計から見直す必要があるかもしれません。
補足
説明不足ですみません テーブルの構造は テーブルA → 顧客情報を記載 顧客IDを主キーとし、テーブルBとリレーション テーブルB → 顧客ID、注文日、商品A、商品B、商品C、商品D、が主なフィールドです テーブルC → 商品Aのタイプを記入 テーブルD → 商品Bのタイプを記入 テーブルE → 商品Cのタイプを記入 テーブルF → 商品Dのタイプを記入 テーブルBの各商品フィールドはテキスト型のコンボボックスにして、値集合タイプをテーブル/クエリとし、 テーブルC~Fを対応させて使用しています。 顧客IDは数値型、注文日は日付型を使用し、その他はすべてテキスト型を使用しています。 まだ、説明の足りないところがあるときにはご指摘いただければと思います どうかお願いいたします。
お礼
お礼が遅くなってしまってすみません 詳しくありがとうございました 全くの別物と再度身を以て認識しました 入門書を一度読み込んでみます ありがとうございます