仕入伝票入力をアクセスで行っています。フォームに日付、仕入先CD等の項目、サブフォームに明細で商品CD、数量、価格等です。しかし最近不便に感じてきたので改良したく質問させていただきました。不便というのは仕入先の伝票入力の時、仕入先ごとに商品CDが異なるという点です。これまでは対応表(商品台帳)をプリントアウトして探してしました。そこで、商品マスターテーブルに仕入先ごとの商品CD項目を商品CD1、商品CD2、・・・と追加し、メインフォームの仕入先CDにより、明細サブフォームの商品CDの参照を変える方法。(仕入先CDが1のとき商品名、商品価格は商品CD1を参照し、仕入先CDが2のときは商品名、商品価格は商品CD2を参照するのような感じ)
選択クエリでサブフォームをつくっているのですが、いかがでしょうか?
フォームに商品CD1、商品CD2と入力枠を作っておくことも考えたのですが見栄えが悪いので条件で仕分けたいのですが可能でしょうか?可能であれば方法を教えてください。
No.3ベストアンサー
- 回答日時:
今までの「商品マスタ」は
・商品CD
・商品名
・仕入れ値とかその他
のフィールドで構成されていたはず。
それを
・商品CD
・仕入先CD
・商品名
・仕入れ値とかその他
に変えましょう。
で、メインフォームの仕入先CDを参照して、それに一致する物だけを抽出するクエリを「商品マスタ2」として作ります。
今まで商品マスタを参照していた入力枠を、商品マスタ2を参照するようにすれば解決します。
・具体的なテーブルの内容の例
仕入先マスタの「仕入先CD」と「仕入先名」
001 鈴木原料
002 佐藤商事
003 田中物産
商品マスタの「商品CD」「仕入先CD」「商品名」「仕入価格」「商品価格」
00024 001 りんご 100 120
1240B 002 りんご 90 120
55100 003 りんご 105 120
00025 001 みかん 44 50
1240C 002 みかん 42 50
55101 003 みかん 40 50
00026 001 ぶどう 230 250
55102 003 ぶどう 221 250
01054 001 なし 89 105
2120D 002 なし 88 105
80201 003 なし 88 105
上記のような場合、メインフォームの「仕入先CD」を「佐藤商事」にした場合、クエリ「商品マスタ2」は、仕入先CDが「002」のレコードだけ抽出されます。
クエリ「商品マスタ2」の抽出結果
1240B 002 りんご 90 120
1240C 002 みかん 42 50
2120D 002 なし 88 105
あとは、サブフォームの商品CDの入力枠の内容に従って、仕入価格、商品価格を表示するだけです(それは今までと同じ)
ありがとうございます。この方法だと、同じ商品名をコードの数だけ登録しなければいけないかと考え、長い商品名だと大変かと思いましたが、フィールドをつくり、仕入先CDで抽出したクエリで可能ですね。参考させていただきます。
No.4
- 回答日時:
同じ商品の管理が複数になる仕組みはしないこと。
何のための商品マスタか考えてみる。
同じ商品を複数の仕入先からというのはしてないですね?。
機能的にでなくて実作業、あるべき構成に基づいているか見直した方がいいでしょう。
ありがとうございます。同じ商品を複数の仕入先から仕入れています。というか、ここがポイントです。
多く提案意見をいただきありがとうございます。自分の質問に補足する場所がわからないのでこの場をお借りします。
仕入伝票にはその仕入先独自の商品コードにつづいて商品名、単価云々と記載されています。例えば、 A123456 アサヒスーパードライ 350ml缶 24入 1ケース ¥○○○○
自分の仕入れデータ入力(アクセスで作った)に上のA123456と入力することで登録。また翌日、別の仕入先から同じ商品を仕入れ例えば
98765 アサヒスーパードライ 350ml缶 24入 1ケース ¥△△△△
これを入力する時には98765を入力することで同一商品の仕入が登録されるという感じにしたいのです。ちなみに主キーはJANコードです。また、私のオリジナルの自店の商品コードも作成しています。現在は仕入れ伝票のコードでなく商品名、容量から自店のコード番号を探し入力しているのですが時間がかかります。
No.2
- 回答日時:
ざっと見る限り、単に商品コードをプライマリキーに出来そうな気がしますが。
何の為にマスタを持つのかよく考えてください。
コードが違うからと無意味にフィールドを増やすのは良くないです。
商品コードをキーに商品情報を持ってくるのですから、それを行うクエリ(SQL)を組めば良いだけのはず。
コード・商品名
001・商品A
002・商品B
ABCD・商品1
ZZ・商品c
というマスタが会ったとして、コードに対する商品名を取るなら、
Select 商品名 from マスタ Where コード='###'
(###は検索するコード)
というようなSQLを組んで、マクロ上で###に対象の商品コードをセットするようにしてSQLを発行すれば、
該当の情報は取得できます。
Select 商品名 from マスタ Where コード='ABCD'
とすれば、商品名として"商品1"が取得されるので、それを単にフォームにセットしてやるだけ。
ループでぐるぐる回してIF判定するならワザワザデータベースにする必要も無いし。
コード毎にマスタのフィールド追加してたら、商品が膨大になったときテーブル自体が無駄に膨大化することになるし。
データベースを使うならデータを引っ掛けるための検索キーという考え方が基本。
商品コードとかバーコードとか検索キーにするにはうってつけの物なわけで。
コードが商品毎に違うということは、そのコードを指定すれば、その商品であるということを特定できる情報なわけで。
そういう情報がプライマリキー(一意に情報を特定できるキー)となります。
そういった情報を使いこなす事でデータベースは活きてきます。
SQL関係の情報はネットにも書籍にも沢山あるので探してみてください。
アクセスでシステムを構築する場合はクエリとマクロを上手く組み合わせることがコツです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL関数LOOKUPとFILTERについての質問です 1 2022/12/21 05:53
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- ネットスーパー 皆さんはネットショップで 10 2022/10/01 13:36
- その他(Microsoft Office) Excelで総数量を変動させたい 2 2022/11/04 23:49
- Bluetooth・テザリング Bruetooh送信機を買ったのですがDSiの音声を送れません。他の商品を紹介してほしいです 1 2022/04/26 14:00
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- ロック・パンク・メタル ハードロックバンドのPOIZONに関して教えて下さい。 2 2022/04/25 15:49
- その他(パソコン・スマホ・電化製品) CD/DVDのクリーニング。 1 2022/11/04 11:51
- 国産バイク 大型バイク カワサキz900rsに付ける ヨシムラのマフラーの質問です、 【 商 品 I D 】14 2 2023/06/27 13:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
Excel VBA ADODB
-
ACCESS ツリービューの作り方
-
日付により変動する「単価」を...
-
異なるデータベース間のテーブ...
-
アクセス★非課税、課税の合計金...
-
SQL文で、合計が0のレコードを...
-
差し込み後、元データを変更し...
-
フィルターかけた後、重複を除...
-
SELECT 文 GROUP での1件目を...
-
for whichの使い方
-
重複していないレコードの抽出...
-
エクセルで最後の文字だけ置き...
-
数値フィールドのワイルドカー...
-
SQL Left Join で重複を排除す...
-
外部参照してるキーを主キーに...
-
副問合せの書き方について
-
SQL Date型の列から年月だけを...
-
SQLで特定の項目の重複のみを排...
-
データの先頭文字の置換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
SQL文で、合計が0のレコードを...
-
Accessの実行時エラーについて
-
ACCESS ツリービューの作り方
-
ACCESS 商品毎の最新の単価を設...
-
日付により変動する「単価」を...
-
異なるデータベース間のテーブ...
-
前月の取得について
-
ACCESSでクエリ作成時複数のフ...
-
AS400にてサブファイルレコード...
-
アクセス フィールド名に変数...
-
テーブル名の トラン マスタ...
-
Accessのテーブル構成について
-
AccessVBA データのエクスポート
-
DBが複雑すぎる
-
Excel VBA ADODB
-
最大値を含むレコードの抽出
-
サブクエリの書き方
-
ユニオンクエリ?レポートにて...
-
FROM句にサブクエリ使えませんか
おすすめ情報