• ベストアンサー

accessのデータベース作成について

記号  商品名 001 袋 002 袋 003 袋 004 お菓子 上記のようなデータベースを作るときに テーブルを作る場合は フィルド名 記号 商品名 を作ったときにレコードが一つの商品名に記号が複数の 場合は 区分訳するコードがいるのですか、 どういうテーブルの構成にしたら良いか教えてください。 以上    

noname#72697
noname#72697

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

データベースを使う(作る)主体の活動(商売)に拠ると思います。 例えば袋(1)、袋(2)、菓子Aがそれぞれ単品で販売する会社なら、質問のようなコード体系で良いでしょうが、 袋(1)に菓子A入りがパックされて、販売する、袋(2)に菓子A入りのパックが商品なら 袋(1)+菓子A--->001 袋(2)+菓子A--->002 菓子A(はだか)---->003 または 菓子A--->001 菓子B--->002 包装コード(別フィールド) バラ----->001 袋(1)--->002 袋(2)--->003 などとなるのではないでしょうか。 後半のケースは菓子と袋の組み合わせで、袋が重要で、 且つ組合わせが自由な場合には採用されるのではないかと 思います。

その他の回答 (2)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

>レコードが一つの商品名に記号が複数の場合は区分訳するコードがいるのですか そのような場合は通常主キーになるフィールドと分類するコードが必要になります。 例えば・・ お菓子1 箱入り お菓子1 袋入り では同じお菓子1という商品でも箱入りと袋入り があれば記号+分類コードのようなキーが有った方が集計する必要が出てきた場合に お菓子1合計やお菓子1箱入り合計などの集計処理が簡易になる。 又は004お菓子ではなく004001お菓子箱入り004002お菓子袋入り等の 一連の分類キーを持った記号(主キー)にするとか方法は色々です。 後はそのレコードを使ってどうのような処理をしたいのかというのが基本になると 思います。

  • sydneyh
  • ベストアンサー率34% (664/1947)
回答No.1

複数ある記号を「ステータス」としてあらかじめ別テーブルで作成しておき、本来の一覧内にあるフィールド「記号」で、記号番号をコンボボックスで選択していく方法をあげてみます。 ○一覧とは別テーブル「ステータス」を作成し、フィールド名「ID」、「ステータス情報(記号)」のみを入力 ※ステータス情報(記号)のテーブル名を「ステータス」とするのを忘れないで下さい。 ※「ステータス」テーブルのデザイン・ビュー フィールド名=「ID」のデータ型 : オートナンバー型 フィールド名=「ステータス情報(記号)」のデータ型 : テキスト型 ○本来の一覧にあるフィールド「記号」を、デザインビューで以下のとおりにする <標準> フィールドサイズ=50 価要求=いいえ 空白文字の許可=いいえ インデックス=いいえ (他は空白のまま) <ルックアップ> ・表示コントロール=コンボボックス ・価集合タイプ=テーブル/クエリー ・価集合ソース=SELECT ステータス.ステータス情報(記号) FROM ステータス; ・連結列=1 ・列数=1 ・列見出し=いいえ ・列幅=空白のまま ・リスト行数=該当記号の数を入れる ・リスト幅=自動 ・入力チェック=はい どうでしょうか。

関連するQ&A

  • データベースの設計について少し疑問が出たので投稿しました。

    データベースの設計について少し疑問が出たので投稿しました。 数千万レコードを取り扱う場合、以下のどの構成が一番クエリを早く実行できるのでしょうか? 1.1つのデータベースに1つのテーブルを構築して全てのレコードを格納。 2.1つのデータベース内に複数のテーブルを構築して、レコードを分散して格納。 3.複数のデータベースにそれぞれ1つのテーブルを構築して、レコードを分散して格納。 データベースはMySQLです。 参考までに、ご意見をお聞かせいただければと思います。 宜しくお願いします。

    • ベストアンサー
    • MySQL
  • ACCESS フォームの作成について

    企業コード(重複しない)売上構成比(abc商品)、項目構成比(a)、項目構成比(b),項目構成比(c) と項目がある場合、私の作成したデータベースでは 売上構成比テーブル 企業コード_売上構成比_種別ID 3項目テーブル 企業コード_3品目項目ID_種別ID_項目構成比_種別名 としています。 売上構成比と言うのは売上の種類別の比率です。(15種類) さらにその種類の項目別の比率が3項目あります。 同じ企業コードで同じ種別IDの項目構成比を足せば100%になります。 同じ企業コードで売上構成比を足せば100%になります。 企業コードは店舗のデータがあるので(店名、住所等)そちらの主キーになります。 要約すると、店別の構成比ということです。 ここで問題になるのが、入力フォームを作成するさいに、 売上構成比(abc商品例ゴルフ)、項目構成比(a項目)、項目構成比(b項目),項目構成比(c項目) のように作成しないとミスを気づかない場合があります。 ですので項目IDごとにクエリを作成し (項目a 項目b 項目c)それらのクエリを企業コード、種別IDで結び、 これをサブフォームとして作成したのですが、次のレコードに進むときに処理に時間がかかります。5秒程度 サブフォームの総レコード数が23万件弱あるため仕方がないのですが、どうにかならないでしょうか? //upload.jpn.ph/upload/upload.php?id=30628 分類名=種類名 例:3品目テーブル 企業コード 種別ID 項目ID 項目構成 3 1 1 0 3 1 2 0 3 1 3 0 3 2 1 0 3 2 2 0 3 2 3 0 3 3 1 0 3 3 2 0 3 3 3 0 3 4 1 0 3 4 2 0 3 4 3 0 3 5 1 0 3 5 2 0 3 5 3 0 3 6 1 0 3 6 2 0 3 6 3 0 3 7 1 0 3 7 2 0 3 7 3 0 3 8 1 0 3 8 2 0 3 8 3 0 3 9 1 10 3 9 2 5 3 9 3 85 3 10 1 0 3 10 2 0 3 10 3 0 3 11 1 0 3 11 2 0 3 11 3 0 3 12 1 0 3 12 2 0 3 12 3 0 3 13 1 0 3 13 2 0 3 13 3 0 3 14 1 0 3 14 2 0 3 14 3 0 3 15 1 0 3 15 2 0 3 15 3 0

  • テーブル間のデータ計算

    データベースの初心者です(初心者以下かも) 当方クエリーで置き換えや抽出くらいしか使用したことがありません Acces2000かSQL2000でのテーブル間の計算について質問があります 商品テーブル コード,商品名,定価 001, ジュース,126 002, お菓子 ,105 003, みかん ,84 004, りんご ,73 売価テーブル コード,区分,売価 001, 1, 70 001, 2, 0 002, 1, 60 002, 2, 0 003, 1, 50 003, 2, 0 004, 1, 40 004, 2, 0 上記のような2つのテーブルのデータで 商品テーブルの定価から0.85を掛けて小数点以下を切り上げた結果を 売価テーブルの同じコードの区分1の売価フィールドに上書きする場合どのような 方法になるのでしょうか? ■希望結果 売価テーブル コード,区分,売価 001, 1, 108 001, 2, 0 002, 1, 90 002, 2, 0 003, 1, 72 003, 2, 0 004, 1, 37 004, 2, 0 Acces2000のクエリーでどうやってやるのでしょうか? よろしくお願いします

  • アクセス2003のルックアップ列について

    どうしてもわからない事が出てきましたので、教えて頂きたいと思います。 テーブルを作りましたが、自分がやりたいようにルックアップする設定方法がわかりません。 <テーブル1> ・・・ 区分 名前  ・・・ ・・・ 1  あうお ・・・ ・・・ 2  かくこ ・・・ <テーブル2> 区分 名前 1  あうお 1  いえ 2  かくこ 2  きけ 上記のような構成の時にテーブル1にデータを入力する場合、区分1のレコードの名前のルックアップにはテーブル2の区分1のみが表示されるようにしたいのです。 同じように、区分2のレコードでは区分2が表示され、それぞれ選択したいのです。 クエリを作成して試したのですが、同じレコードの別のフィールドを条件に入れる方法がわかりません。 仮に、パラメータで1を指定したら、区分1のレコードではちゃんと表示されますが、 区分2のレコードでも区分1が表示されてしまいました。 こんなことが出来るのでしょうか?出来ないときはテーブル2を全部表示させるしかないですよね?他に方法があれば、その方法もお願いします。 わかりにくいときは補足いたしますので、宜しくお願いします。

  • テーブル作成クエリとデータベースの分割

    当方、Accessは全くの素人ですが、急遽Accessにて連絡先台帳を 作ることとなりました。 参考書を片手に、なんとかそれ相応のものになってきましたが、 表題部分にて四苦八苦しております。 どうぞ、ご教授のほどよろしくお願いします。 まず、連絡先テーブルを作成しました。 この中には個人名、会社名、住所などを入力するようにしました。 会社名の中には複数のレコードがあるため、個人向けではなく、会社向けの 送付用のラベルを作成したいと思い、テーブル作成クエリを用いて 会社テーブルを作成しました。 上記テーブルから、ラベル作成までは何とかできるようになりましたが、 複数のユーザーがこのデータベースを使うため、データベースの分割をし 運用したいのです。 また、この会社テーブルを別のデータベースでも使用したいと思っております。 ツールを用いて、データベースの分割はできましたが、新たな連絡先が 追加されたときなど、再度テーブル作成クエリを実行してしまうと、リンクが 外れてしまいます。 外部データからリンクテーブルを作りなおすと、以前のデータのままなので、 分割したデータベースを更新しなければならないことはわかりましたが、 その方法が全くわかりません。 できれば、更新ボタンを押した際に、 テーブル作成クエリを起動して、テーブルを作成し、分割したデータベースを 更新させたいのですが、何か良い方法はございませんでしょうか? 他の方法でも全く問題ありません。 VBAやマクロでも構いません。 ただ、VBAもマクロも殆どわかりませんので、できればコード等を記載して いただけると助かります。 Access2007を用いております。 どうぞよろしくお願いします。

  • Accessのクエリによる集計が出来ない

    Accessのクエリによる集計が出来ない kamuycikapです。 OKWaveで様々な方のアドバイスを頂きながら、慣れないAccessと悪戦苦闘しております。 一昨日、計算したい表を作成する為にOKWaveに質問を載せました。 http://okwave.jp/qa/q5549286.html 無事に上記のアドバイスでリレーションのオプション設定を行い、集計計算したいクエリの結果を表示することが出来ました。 その表を元にして 下記の質問でアドバイス頂いた方法による集計を行おうとしたのですが、集計出来なくて困っています。 http://okwave.jp/qa/q5544785.html データベースの構成とキーは以下のとおりです。 --ここから <データベース構造:リレーションシップ> リレーションシップとテーブルの構成は下記の通りです。 -->がリレーションシップです。 Kがキーになります。 ■テーブルA      ■テーブルB    ■テーブルC    ■テーブルD K納品書コード --> K納品書コード --> K納品書コード  --> K納品書コード 仕入数          K商品コード  --> K商品コード   --> K商品コード                             K商品連番    --> K商品連番                             出品数量        K出品連番                             商品名           発送個数                             色             発送日付                             サイズ                             売値 ※テーブルCからテーブルDへのリレーションオプションを「’テーブルC’の全レコードと’テーブルD’の同じ 結合フィールドのレコードだけを含める。」としています。 <作りたいデータ> 納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量、発送個数、出品在庫数、倉庫在庫 <クエリ> ○グループ  納品書コード、商品コード、商品連番、商品名、色、サイズ、売値、仕入数、出品数量 ○合計(集計)  発送個数 ○出品在庫数(演算)  [出品数量]-[発送個数] ○倉庫在庫(演算)  [仕入数]-[発送個数] <データ状況> テーブルCのデータは約300レコードありますが、そのうち20件ほどしか商品が発送されていない為、テーブルDのデータは20件しかありません。 <望む結果> テーブルCのデータが全て表示され、紐つけられたテーブルDのデータがが存在する場合は、発送個数を表示し出品在個数を演算する。 演算した出品在個数を利用して、倉庫在庫も演算する。 <クエリの実行結果> テーブルCのデータが全て表示され、テーブルDに紐つけられたレコードも表示されるが、テーブルDに入力されている20件のデータが商品連番(テーブルCのフィールド)ごとに集計されない。 --ここまで <目的> お店に出品された商品は、日を分けて少しずつ売れていきます。(一日で全部売れることもありますが....) 従って、出品された商品(テーブルCのデータ)に対して売れていく数(テーブルDの複数のレコード)のデータがぶら下がっている形になります。 このようなデータベースですので、出品した商品が何個売れたかを計算する為には、商品に対する売れた個数を集計(合計)しなければなりません。 <結果> テーブルCの商品連番ごとの発送個数を集計したいのですが、テーブルDの出品連番ごとの集計になっている様子です。 <頂きたいアドバイス> 上記のデータベースとクエリで、テーブルCの商品連番に紐ついたテーブルDに格納されている発送個数の合計値を集計するための方法 以上、識者の方のアドバイスをお願い致します。

  • ACCESS2003でデータベースを作成します

    Access2003でデータベースを作成します。 以下の入力項目があるのですが、どう正規化したらよいのかわかりません。 お助けください。 ・顧客ナンバー ・顧客名 ・生年月日 ・年齢 ・住所 ・電話番号 ・身長 ・体重 ・性別 ・来店日 ・購入物 ・購入金額 これが一つなのですが、もう一つテーブルで ・商品名 ・価格 のデータベースも作りたいのです。 購入物を入力するとこのテーブルから価格を引っ張ってきて、 購入金額合計を出すようにすることも予定しています。 また来店日、購入物などの履歴は来店の度に入力があるので、 顧客ナンバーとは別のテーブルにすべきなのはわかるのですが・・・ よろしくお願いします。 このほかに必要な情報がありましたらご指摘ください。

  • データベースの基本についてです。

    あるテーブルに[商品ID] [商品名] [属性]のフィールドを作ったとします。 商品IDと商品名は一意に決まりますが、 1つの商品に[属性]が1つだけではなく複数ある場合はどのように考えたらよいのでしょうか。 [属性1][属性2][属性3]・・のように 複数のフィールドを作る必要がありますか? これだと空白レコードもたくさんできてしまってよくないような気がします。 いろいろ調べてみて中間テーブルというものがあったのですが どうやってみてもACCESSでうまく再現できませんでした。 どうかご教授ください。

  • アクセス2003でのデータベース作成で

    WinXP上でaccess2003のデータベースを作成していますが、どうしても分からないのでどなたかご教授いただけないでしょうか? Aというテーブルには商品名と値段をそれぞれのフィールドに入力してあり(フィールドA1,A2と仮定。主キー用は別) Bというテーブルの3つのフィールド(仮にフィールドB1,B2,B3)はテーブルAの商品名(A1)をルックアップしている状態なのですが、テーブルBのもうひとつのフィールド(フィールドB4と仮定)にフィールドB1,B2,B3でルックアップしている商品の値段(A2)の合計額が表示されるようにするにはどうしたらいいのでしょうか? 買った本にも載ってませんし、ネットで検索してもこれかな?っていう解説が見つからなかったので漠然とでもいいのでこうしたらいいとかリンク先などを教えていただければ幸いです

  • Accessのデータベースのコンボボックスの記載

    AccessのVBAのコンボボックスのデータベースのレコードの非表示の仕方と表示する値と取得する値を変える方法が知りたいです。 例えばSQL分でテーブルの中の商品コードカラムと商品名カラムを抽出し、値をコンボボックスに入れるとします。この時商品コードの方は値だけ持たせて非表示にし、商品名だけが表示されるようにしたいです。 そして表面上で商品名が選ばれた時、非表示の商品コードの値の方が選択されるようにしたいのですがどうコーディングしたらいいのかわからないです。 ネットでも調べてみましたがフォームで設定する方法しか見つけられませんでした。VBAで記載するようにとの指定があるのでVBAで記載するようにしたいです。 VBAではどのように書いたらいいのでしょうか

専門家に質問してみよう