![]() |
||
<HOME <お願い事項 <Access2002 TOP <Access2000 TOP <サイト内検索 | ![]() |
|
![]() |
||
Access97データベース工作室>在庫のザの字はどう書くの〜♪ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
今回は「ものの出し入れ」の仕組みについていろいろ考えてみようかな、と思います。
例によって唐突ですが、「在庫管理システム」を作りましょう。いいからいいから。作りましょうって。
さて、いくつかdb作りに挑戦なさった方はもうお気づきと思います。
どんなシステムでもまずテーブルありきです。
テーブルをめちゃくちゃに作り始めたり、意味も分からずリレーションシップだーなどといってヤミクモにつなげたりしたシステムは、ろくでもないものになりがちです。
多少の行ったり来たりは仕方ないですけども、とにかくぴしっとテーブルのイメージはつかんで、ちゃんとデータがしかるべきところにたまっていく様子を考えておきましょう。
<テーブルイメージ>
テーブル名 役割など 商品テーブル(マスター) 取扱商品の名前、在庫数などを把握するために使用する。中心となるマスターファイル。 分類テーブル(マスター) 商品の種類が多いので、分類しようと思って用意しました。 顧客テーブル(マスター) お得意様の名前や住所を書き並べるテーブル。 社員テーブル(マスター) 担当する自社の社員の名前や部署を書き並べるテーブル。 メーカーテーブル(マスター) 商品を仕入れるときの、仕入先の一覧(ふつうは顧客マスターといっしょにすんのかな) 出庫テーブル 注文があった際、いつどこの顧客からどの商品がいくつ注文受けた、などの情報を蓄積。 入庫テーブル 品薄になったときに、どの商品をいついくつ補充したかなどの情報を蓄積。
テーブルのイメージはこんな感じで考えてみました。
マスターと名のつくテーブルと、入庫テーブル、出庫テーブルはちょっぴり役割が違います。
まあ、どっちもふつうのテーブルですけどもね。気持ちの上で、分けて考えようと思うんです。
赤い方はいわゆるトランザクション系のテーブルということで、なんか処理が発生する度にしょっちゅうレコードが追加されるタイプ。
対して青い方はマスター系のテーブルということで、トランザクション系のテーブルにデータがたまるとき、参考にするためのものです。
気持ちの問題ですけど、どのテーブルの中のレコードが処理の中心になるか、その辺もうまく考えながら作業を進めていくとわかりやすくなると思いますよ。
で、あせってフォームを作り始めてしまわず、まずはテーブルのイメージを書き出してみて、「どっかのお客さんから注文を受けたら」とか「商品の在庫が少なくなってきたなぁと判断するのはどのタイミングがいいのか」、などなど、Accessから離れて考えます。
じゃ、まずテーブルを作るとしましょうか。
あたしはこんな感じのテーブルにしました。みなさんなりにいろいろアレンジしていただいてよいと思います。
【分類マスター】
取扱商品を分類わけするためのマスターファイル。
中身は[分類]と[分類名]の2フィールドで、どちらもテキスト型でOK。
何件か適当にデータを入力しておくとよいでしょう。
主キーは[分類]です。このテーブルの目的は「分類の一覧」ですからね。
【メーカーマスター】
こんな感じで・・・。
主キーは[メーカーコード]です。
で、このデータベースの主軸となる【商品マスター】を作ります。
【分類マスター】【メーカーマスター】と、それぞれコードや番号でつながりを持つようにしています。主キーは[商品番号]です。
小数点以下の桁を何桁か持ちたければ、数値型のフィールドの「フィールドサイズプロパティ」を単精度浮動小数点型に変更しましょう。長整数型のままでは、保存されるのは整数部分だけです。
【顧客マスター】
もしかしたらフツウは、仕入先の業者さんも取引先のお得意さんも、
いっしょに並べてていいのかもしれないんですけど・・・
なんか成り行きで分けちゃいました。
こっちは、お得意さんの住所とか入れるテーブルです。
主キーは[顧客コード]。
え?やる気のない顧客名だって?う、なんでばれたんだ・・・じゃ、気合入れなおして・・・。
【社員マスター】
注文を受けた人の名前ってことで、自社の営業マンの一覧です。
主キーは[社員番号]です。
で、マスター関係は終わり。
次に、出庫するとき、入庫するときに使う、いわゆる伝票系のテーブルを用意します。
出ていきっぱなしなら出庫処理だけでいいんですけど、ちゃんと仕入れた履歴も残したいなーという場合は、入庫テーブルも作りましょうかね。
【出庫テーブル】
【入庫テーブル】
このふたつはとりあえず空っぽのままでよいと思います。主キーはそれぞれ[注文番号][伝票番号]と。
入庫テーブルの方も、仕入先の業者や入庫担当者を記録しておきたい、ということでしたら、[メーカーコード]と[担当者]というフィールドを持っておくとよいでしょう。
この辺は、どういう処理をするかによりますね。実際の業務と照らし合わせながら、調節していきましょう。
あと、足りないのが出てきたら、その都度作りますかね。
んじゃ、次行きましょう。
テーブルがだいたい勢揃いしたら、処理の流れを考えます。流れを考えて、一番入り口の部分から作り始めるのがいいんじゃないかな、と思います。
1)注文を受けて、出庫する。
2)在庫確認をして、少ないものをチェックする
3)チェックした商品を仕入れて補充する
4)棚卸をして、実際の在庫数と数値があっているかどうかチェックする。
こんな感じですかね。おおざっぱですけども。何をきっかけに業務が動き出すかというと、注文受けて出庫するところからですよね。この場合はきっと。
なので、他とのバランスを見つつ、出庫処理から作っていくのが一番いいんじゃないカナーと思います。まあ別に入庫から作っても棚卸から作ってもいいんですけども。。。
出庫テーブルを基に、こんな感じの単票フォームを作ってみましょう。
細かいところはちょこちょこ修正していきますから、とにかく出庫テーブルを基にした単票フォーム、作ってみてください。
![]() |
![]() |