アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、Accessを用いたシステム制作に挑戦しています。
その中で、商品のバーコードをスキャンし、スキャンした分だけカウント・表示ができるようにしたいのですが、やり方がわからなくて困っています。当方、Access初心者でFOM出版の「Access基礎・応用・ビジネス活用編」の知識しか持っておらず、Webでいろいろ探してみたのですが、思っている答えがなくて質問させていただきました。

詳細を説明します。

商品マスターテーブル
・商品コード
・商品名
・価格
・商品画像
・バーコード

のテーブルを作成しています。また、フォームを作成するにあたってクエリなども作成しています。

流れとしては、画像のフォームに商品コード(バーコード)が一致したらカウントできるようにしたいです。
フォームの画面で商品のバーコードをスキャン
→ フォームに表示された商品の中から同じ商品コード(バーコード)の列に「1」とカウント
→ 同じ商品をスキャンすると「1」だったところが「2」になる
→ 違う商品をスキャンすると対応する商品コード(バーコード)の検品数量フィールドに移動し「1」と表示

このような感じです。
画像を見ていただいたらわかるかと思いますが、商品コード1000のバーコードをスキャンすると、赤丸で囲まれた検品数量と書かれたフィールドに(今は0になっていますが)「1」とカウントされ、2回スキャンすると「2」とカウントされるようにしたいと考えています。VBA・SQLなどを使用しても大丈夫です。(知識はないですが・・・)

わかりずらい説明になっていますが、ぜひご教授願います。
また、似たような説明がされたサイトや、「これ使えるんじゃない?」といったサイトなどがあれば誘導していただけると有難いです。

長文になってしまいましたが、ここまで閲覧いただきありがとうございます。
どうぞよろしくお願いします。

「[Access]商品のバーコードを使用し」の質問画像

A 回答 (2件)

再度質問の意味を理解しようと見直しましたが。

ここでの数量と言うの
は入力をしないと言う事でしょうか。要は、バーコードで商品コードを
入力をすると言う事は、常に数量は1を限定にしていると言う事でしょ
うか。

私はこの部分がデータに依って違うと思っていましたから。先程の回
答に成りました。この部分が常に固定化されているので有れば。それ
は、フォームを二段構えにする必要は有りません。

バーコードを読んだ時の
商品コード_BeforeUpdate(Cancel as Integer)
の処理の中でvbaを記述すれば良いのではないでしょうか。

その時の数量は=DCount("商品コード","発注") + 1 で良いかと思いま
す。但し、実際はここでは発注で商品コードをカウントするのはもう少
し条件が加わるとは思いますが。

然し、得てしてこのデータ定義域関数と言うのは遅くなりがちです。で
すから、サブフォームとして在庫のフォームを作り非表示にして商品
コードを入力した時に在庫のサブフォームを商品コードでリンク表示さ
せます。

また、この在庫のサブフォームの在個数を非連結のテキストボックスに
格納してそれを発注の在個数に
商品コード_BeforeUpdateで引用してそれをプラス1した方が処理的には
早くなると思います。

実際に作った訳では有りませんので。何ともなりませんが。理屈では作
れない筈は有りません。但し、スピードの点ではそれなりの改善は必要
とは思います。

データの量にも依りますが。少ない件数ならばこれでも問題は出ないと
思います。具体的な構造が明らかになると実際のコードを定時出来ます
が。具体的な物が無いので。ここで回答を終わります。

頑張って見て下さい。方法は色んな方法が有ります。正解はコストが一
番少ないのが回答です。コストを掛ければそれこそ何でも出来ます。但
し、ストレスはそれなりに溜まりますが。ストレス無く処理が出来るの
が唯一の正解の回答です。
    • good
    • 0
この回答へのお礼

何度も回答していただき本当にありがとうございます。

数量の部分は、固定ではなく、バーコードを通すたびに数値が増えるようなシステムにさせたい。
というのが質問内容です。
語彙力が乏しくて本当に申し訳ありません。


usui-2015様が最後におっしゃていたように、様々な方法を試したところ数量をカウントさせる事が出来ました。
やっぱり、データは重くなってしまいましたが、まずは、きちんと動くシステムを目標としていましたので、
とてもよかったです。
本当に助かりました。
usui-2015様をベストアンサーに選ばせていただきます!

お礼日時:2016/12/20 15:15

質問の意味を理解し辛いのですが。

画像を見る限りは伝票の処理の様で
す。検品の数量と言うのが果たして、バーコードで読み込んだ時に数量
がリアルタイムに表示をしたいと言う事でしょうか。

出来ない事は無いでしょうが。処理の内容が無駄なコストが掛かりま
す。やるとすれば、dcount("商品コード","伝票","商品コード=" & [商
品コード])となりますが。データの件数が多くなると遅くなります。

こう言う使い方はデータベースとしては不向きです。また、一般のコン
ピュータ処理でもこれはやらないと思いますが。若しも、やるとすれば
一時的にデータとして保存をして別のホストシステムにリアルタイムに
転送して、ホストでの集計と言うのは考えられますが。

それがPOS(Point Of Sales)システムですが。

普通はバーコードで迅速に読み取りデータの収集を図ります。その後に
クエリなどで集計を取ります。集計は単にウイザードが用意されていま
す。

若しも、リアルタイムでの集計が必要で有れば。ここでは、バーコード
で読み取るフォームと集計をするフォームの二段構えが必要になりま
す。それは、商品コードをそれぞれ伝票入力画面と集計画面とでリンク
させます。

集計画面では商品コードのBeforeUpdateのイベントで集計クエリを実行
させるだけです。メインの画面をデータ入力として。サブに集計の画面
を作ります。

もう少し具体的で無いとこれ以上の回答は出来ません。頑張って作って
見て下さい。
    • good
    • 0
この回答へのお礼

返信遅れました。
お返事ありがとうございます!!

usui-2015様が、おっしゃる通り、バーコードで読み込んだ時に数量をリアルタイムに表示出来るシステム制作を試みています。説明不足で大変失礼致しました。
頂いた回答を参考にして、フォームを2段構えにし、システム制作を行いたいと思います。
本当にありがとうございました。

お礼日時:2016/12/19 09:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています