<HOME  <お願い事項  <Access2000 TOP   <Access97 TOP   <サイト内検索
 MS-Access2002 なりきりデータベース設計
  1 2



漕げよマイケル データベース作成 2_2

さて、これで希望はかなったかなと思ったんですが・・・。
今日から、マツカサの販売も開始しました。
と、リストに「マツカサ」と追加して5行出るようにしたいんですけど・・・。

と、フォームのプロパティの書き換えをやる必要がありますね。
商品がしょっちゅう増えたり減ったりする場合、これってちょっと面倒な気がするんですけど・・・。皆さんはどうお考えですか?
手軽に商品の追加・更新・削除をしたいのなら、コンボボックスの中に表示させたい値を収めたテーブルを用意しておいたほうがいいかもしれないですね。もし、商品の種類が200とか300とか増えてきた場合、コンボボックスの手入れが面倒ですし・・・。

それから・・・。
今後、商品の値段とか、どこに仕入れに行ったらいいのかとか、そういう情報を持ちたいなあと思った場合、商品名の一覧も顧客の種類の一覧も、単なる「コンボボックスに1列表示するための情報のかたまり」ではなくて、独立した「情報のかたまり」として扱っていかなくちゃならなくなりそうです。
ちょうど、下の図のように、「商品の価格」とか「仕入先」とか「アカリスやシマリスなどの人口」とか・・。

今回はとりあえず、「商品名」の方だけ、テーブルを別に設けて管理していくことにしました。



こういうテーブルを作って、

とりあえずデータシートビューでデータの入力をしておきます。

あとで、もうちょっと気の利いた「商品登録画面」かなんか作っとけば、結構イケるんじゃないかと思うんですよ。



わたしは、オートフォーム機能で作ったフォームを土台にして、ちょこちょこっとこんなふうに作り変えてみました。



さらに、

  ・商品名の入力をしてEnterキーを押したとき、既に同名の商品名が登録されていないかどうかチェック
  ・上記のチェックをした後、登録を続ける場合は、自動的に商品番号を振る
  ・上記のチェックをした後、商品が既に登録済みなので登録する必要がないとわかった場合、入力を止める。

という仕組みを作ってみました。

これ、別に難しいことはないですよね。決まったやり方があるわけでもないし・・・。
やり方は皆さんにお任せします。特にやり方はお話しませんので、工夫してみてください。
他のコーナーでお話してきたことの組み合わせでできると思います。
きっとこういう細かい仕組みを作っていくことも、データを蓄積する上で大切な役割を担うと思いますよ。



さらにマイケルは、「登録日」「削除」というふたつのフィールドを追加しました。
それぞれ、日付時刻型、Yes/No型のフィールドです。

さっきのフォームに一工夫して、その商品を登録した日をDate関数で入力できるように指定しました。
さらに、この商品はもう当分取り扱わない・・・と決めたら、この画面からチェックをつけておこうと思います。

右の虫眼鏡のボタンをクリックすると、商品の一覧が出るようにもしました。
一覧画面は、簡単に↓こんな感じで作ってみました。

扱う商品の種類が増えてきたら、もっといろいろ工夫しないとならないかもしれませんが、とりあえずこれでうまいことやっていこうと思います。

では、いよいよ売上入力のフォームの方ですが・・・。
今、商品名のコンボはこんなふうになってるんですが、これを、


こうします。↑
さらに、「値集合ソース」プロパティの右端のビルドボタンをクリックして、

このメッセージに「はい」で応答し、

コンボから「値段」など他の情報を引き出すことができるようになり、さらに、削除のチェックが付いてない商品だけが、コンボに表示されるようになります。「商品番号」はもしかしたら選ばなくてもいいかもしれませんが・・・とりあえずこんな感じにしてみました。

このウィンドウを閉じますと、なんかメッセージが出ますが、

このメッセージも「はい」と応答してやればOK。
コンボボックスやりストボックスの中に表示されるデータは、こんなふうに様々な調整ができるんですね。

後は、「実際にテーブルにはいる値」をどうするか、ってとこなんですが・・・。

ほんとうならば、「商品番号」が主キーなんだし、商品番号が売上データとして入ってきたほうがいいのかもしれないんですけどね。
今回は、今までずっと「商品名」を手入力してきたので、これからも「商品名」が入るようにしたいなと思うんです。
なので、コントロールソースとの「連結列」は、「商品名」・・・つまり「2列目」っていうことになるので、「連結列」プロパティを 2 に変更しておくといいでしょう。

コンボの書式プロパティはこんなふうに↑しておけばよいと思います。
この辺はお好み&ケースバイケースで・・・。各プロパティのヘルプを参照しながら設定していって下さい。

とにかく、フォームのプロパティやイベント、関数などをいろいろ組み合わせることで、入力しやすくしていきます。
入力しやすくする最大の目的は「商品マスターおよび売上入力テーブルへのデータの蓄積をしやすくする」ことにあります。
「しやすくする」ということは、もれなく蓄積されるようになる、ということですもんね。



さらにマイケルは、商品名と数量を入力したら即、会計金額が出るように工夫してみました。
これなら、お客さんの対応をしながら入力し、入力しながらお会計金額を計算して、その金額をお客さんに伝えることができます。
電卓をぱちぱちしなくても大丈夫。
お客様から「あ、やっぱり300個じゃなくて280個ちょうだい」と言われても、すぐ再計算できます。
非常にスマートです。

さて・・・この、「単価」と「お会計」の金額を、売上のテーブルに含めるか含めないか・・・というところが、次の争点になりそうです。
この辺は「漕げよマイケル」でお話をしてきたとおりです。
リレーショナルデータベースの合理性とは、「皆さんにとって」ではなく「コンピュータにとって」ってことです。

少なくとも今の時点で「売上のテーブルに30,000円って入ってこないんですけど、何でですか?」なんて疑問は、お持ちではないですよね?
残そうとしないものは残らない。こういう↑疑問が浮かばないように、一生懸命ドブさらいをして図を書いたんですから・・・。



ここまでの状態のデータベース、ご用意しました。
いろいろコマゴマ工夫をしてみましたので、よかったら参考になさってみてください。
(うまく動かないところもあるかもしれないですが・・・)
下の図をクリックすると、ダウンロードできます。前回同様、zip形式の圧縮ファイルになってますので、解凍してご覧になってください。

(前回のファイルだと、商品別集計と顧客別集計が逆になっちゃってましたね。スイマセン・・)

ではでは、次は、仕入れのリスト作成や、在庫数の把握など、もっと核心に迫って参りますよ〜