Microsoft Access 掲示板

名称等からIDの入力

7 コメント
views
4 フォロー

在庫管理表を作成しています。

Q_在庫管理表 (クエリ)
出入庫ID(主キー)、日付、商品ID、商品名、商品番号、数

T_商品(テーブル)
商品ID(主キー)、商品名、商品番号

上記のフィールドがあり、現在【商品ID】を入力して【商品名】、【商品番号】が
自動セットされるようになっています。

これを【商品番号】を入力しても【商品ID】【商品名】がセットされるように
したいのですが、どうしたらいいでしょうか。

「コードでも名称でも入力できるコンボボックス」
https://hatenachips.blog.fc2.com/blog-entry-237.html
を拝見したのですが、フォームとコンボボックスでの操作だったので
当てはめることができませんでした。

バーコードスキャナアプリで【商品番号】を読み取り、EXCElかcsv形式で一括で登録したいと考えている途中です。

どうかよろしくお願いいたします。

Miyabi
作成: 2022/02/19 (土) 02:07:54
通報 ...
1

Q_在庫管理表 のSQLを提示してもらえますか。

バーコードスキャナアプリで【商品番号】を読み取り、EXCElかcsv形式で一括で登録したいと考えている途中です。

EXCEL と Access の連携はどのように考えているのでしょうか。
データをエクセルに格納するなら、エクセルで直接読み取ればいいと思いますが。

2
Miyabi 2022/02/19 (土) 13:48:00 c3922@04b38

早速のお返事ありがとうございます。

Q_在庫管理表

SELECT T_在庫管理表.取扱日, T_在庫管理表.入庫ID, T_在庫管理表.勘定科目, T_勘定科目.勘定科目, T_在庫管理表.仕入先ID, T_仕入先.仕入先名, T_在庫管理表.商品名ID, T_商品リスト.商品名, T_メーカー名.[メーカー名], T_商品リスト.[メーカー名], T_商品リスト.品番, T_在庫管理表.単価, T_在庫管理表.入個数, T_在庫管理表.出庫数, T_在庫管理表.合計金額, T_在庫管理表.受注ID, T_受注.顧客ID, T_顧客情報.[お名前], T_在庫管理表.備考
FROM T_顧客情報 INNER JOIN ((T_メーカー名 INNER JOIN (T_商品リスト INNER JOIN (T_仕入先 RIGHT JOIN (T_勘定科目 INNER JOIN T_在庫管理表 ON T_勘定科目.勘定科目ID = T_在庫管理表.勘定科目) ON T_仕入先.仕入先ID = T_在庫管理表.仕入先ID) ON T_商品リスト.商品名ID = T_在庫管理表.商品名ID) ON T_メーカー名.[メーカー名ID] = T_商品リスト.[メーカー名]) INNER JOIN T_受注 ON T_在庫管理表.受注ID = T_受注.受注ID) ON T_顧客情報.顧客ID = T_受注.顧客ID
ORDER BY T_在庫管理表.取扱日, T_在庫管理表.入庫ID;

現実にはこのようになっています。
見ようみまね作成しているので無駄な部分やおかしな所があるかもしれませんが、、。

F_在庫管理表フォームも作成してあり、通常はそちらから手作業で入力していたのですが、バーコードスキャナアプリのデータで入力できないかと思考錯誤している段階で、

複数の【品番】をアプリで読み取りcsv形式でパソコンに保存

Q_在庫管理表と同じ形のEXCELのテーブルに落とし込み

Q_在庫管理表に追加でコピペ

これでできないだろうかと思っての質問でした。

データをエクセルに格納するなら、エクセルで直接読み取ればいいと思いますが。

ごめんなさいどのようにすればいいのかわからないです。

よろしくお願いいたします。

3

ご希望の処理の流れは下記になると思います。

バーコードスキャナアプリで「商品番号」を読み込む。CSVファイルとして保存される。

エクセルファイルにテーブルとして読み込む。

これをAccessのテーブルに取り込む。

「Q_在庫管理表」に取り込むという考え方ではなく「T_在庫管理表」にデータを取り込むという考え方にすべきでしょう。
「Q_在庫管理表」にコピペしたとしても、データが最終的に追加されるのは「T_在庫管理表」ですので。
「Q_在庫管理表」には「T_商品」などのマスターテーブルのフィールドも表示されていますが、これらのフィールドは更新してはだめなので。

「T_在庫管理表」には「商品番号」や「商品名」などのフィールドはないはずですので、外部キーである「商品ID」を入力する必要があります。

いったん、エクセルに落とし込むなら、エクセルの方で「商品番号」を「商品ID」に変換するのが簡単そうですが、それではだめでしょうか。

5

あるいは、下記のようにしてもいいでしょう。

エクセルのテーブルをAccessにインポートする。
更新クエリでインポートしたテーブルの「商品番号」を「商品ID」に変換する。
このテーブルを追加クエリで「T_在庫管理表」に追加する。

4
Miyabi 2022/02/19 (土) 17:06:18 c3922@04b38

「Q_在庫管理表」に取り込むという考え方ではなく「T_在庫管理表」にデータを取り込むという考え方にすべきでしょう。

ご教示ありがとうございます。関係性をよく理解しておらず、おっしゃる通り商品リストを更新してしまったりでうまくいっていませんでした。

いったん、エクセルに落とし込むなら、エクセルの方で「商品番号」を「商品ID」に変換するのが簡単そうですが、それではだめでしょうか。

その場合は、Accessの商品リストをエクセルにエクスポートしてから利用するということであっていますか?
日々大量の商品をAccessのT_商品リストに登録していく事になるのでちょっと不安があるのですが、、、。

6

上の回答の追記の方法でどうでしょう。

更新クエリは、インポートしたテーブルとT_商品リストを「商品番号」で結合したクエリにするといいでしょう。

7
Miyabi 2022/02/19 (土) 17:16:10 c3922@04b38

ありがとうございます!!
その形で進めようと思います。
まだ、更新クエリ、追加クエリをささっと作成できる技量がないので、勉強しながらやってみようと思います。
追加のアドバイスもありがとうございます。
また、行き詰まったらお邪魔するかもしれませんが頑張ってみます。