テーブルを作成しよう(見積/見積サブ)
マスタ系のテーブルが作成されたら、実際に見積情報を登録するテーブルを作成してみましょう。見積入力画面をイメージしてみてください。大きく、見積ヘッダエリア(得意先、見積日等)と、商品が入力される見積明細エリアがイメージされるかと思います。(承認情報エリアは次章で説明します)
大体の画面イメージを手書きで構いませんので書いてみることも必要です。もちろん管理内容はさまざまです。ここではシンプルな項目のみを管理するという前提で作成していきたいと思います。
見積ヘッダテーブル(見積ヘッダエリア…赤枠)
見積コードは「00000~99999」まで自動で採番することにします。見積コードは重複しないように設定し、主キーとします。
見積日はカレンダーで選択できるようにし、YYYY/MM/DD(例:2021/08/31)の形式で保存します。
担当者…担当者マスタよりプルダウンで選択できるようにテーブル設計を行います。また、担当者フィールドには担当者コードが格納されるようにします。※都度手入力でも構いませんが、プルダウンで選択したほうが入力効率が向上します。
担当者の中には社長も含め、経理・総務などの「見積書を作成しない」方もいるかと思います。そんな時には担当者マスタに「業種コード」を設け、業種マスタも作成しておきます。(1:社長 2:経理 3:総務 4:営業)といった具合ですね。
担当者プルダウンで表示されるのは「4:営業」担当者のみ表示されればさらに便利なシステムになるかと思います。また、画面を開いたときにはデフォルトで自分の名前が表示されればいちいちプルダウンから選択する時間がなくなりますので、さらなる入力作業の効率化になります。担当者プルダウン項目ひとつとっても、様々な手法が考えられますよね。なるべく入力の手間をかけないように工夫するコツが必要です。
得意先…こちらもプルダウンから選択するようにします。ただ、300~500社以上得意先が存在する場合には非常に長いプルダウンから探し出して選択しなくてはならず、大変です。また得意先コードを直接入力してしまったほうが早いという場合もあります。プルダウンにするか直接入力にするか、別画面で得意先検索画面を表示するかどうかについては社内の意見を聞いた後で開発を行ったほうがよいかと思います。フィールドには「得意先コード」が入るように設計します。
備考…社内備考や見積備考など複数の備考欄を作成する場合もあります。見積備考は見積書の備考に、社内備考は社内のみが閲覧するというように分ける場合が多いです。社内備考を見積書に記載してしまったら大変ですので気を付けて設計する必要があります。
小計・消費税・合計…こちらは各商品1行1行の合計を出すだけなので、わざわざ必要ないのでは?という考え方もあります。ただ、業種によっては端数が発生した場合(例 小計が32,565円)には、32,000円のようにキレのよい数字に書き換えて出力する場合もあります。また、値引のフィールドを作成し、値引フィールドに「-565円」と入力し32,000円にするという手法もあります。ここも業種・業態によって変わりますので設計段階で決めておく必要があるかと思います。
見積テーブルは上記のように作成してみました。ここに次章で説明します「承認情報」を付け加えていきたいと思います。
テーブル名はマスタと区別するために「TBL_見積」と名前を設定しました。毎日入力していくようなテーブルとマスタテーブルは見やすく分けたほうがいいかと思います。また、最終更新者・最終更新日も作成しておきます。「いつ、だれが最終にこの見積を作成(編集)したか」どうかの履歴が後からわかるようにしたほうがよいためです。
▼見積明細エリア…緑枠
こちらは、どんな商品がいくつ見積され、金額がいくらになるのかを入力する枠となります。主キーはどのように設定すればよいでしょうか?
1:見積コード+枝番号で主キーとする
この手法が一番スタンダードかと思います。枝コードは1から順に入力した順番にテーブルに登録していく方法です。
主キーを2列追加する必要があります。2列を選択し右クリック→主キーの設定を行うことにより見積コードと枝コードの2列が主キーとなります。
例)
見積コード 00001 枝コード 1 商品A
見積コード 00001 枝コード 2 商品B
見積コード 00003 枝コード 3 商品C
見積コード 00002 枝コード 1 商品A
見積コード 00002 枝コード 2 商品B
上記のような構成であれば重複することなくテーブルに格納できます。
テーブルは上記のような設定になります。
2:オートナンバー型を定義し、主キーとする
オートナンバーは重複せずに1から順に任意の番号を振っていくしくみです。見積明細コードというフィールドを作成します。データ型をint(数字型)に設定し、IDENTITYの設定の「IDである」に「はい」を設定し、主キーに設定します。
今回は、1:見積コード+枝番号で主キーとする方法で作成していきたいと思います。
商品名…商品名はマスタから表示だけをさせればよいので必要ないという方法もあります。ただ、商品名は見積によって変更される場合があります。例えば、「商品A」という名前がマスタに入っていたとすると、「商品A-キャンペーン中」という名前に変更して単価を下げて販売するといった時に使います。このシステムでは商品名は書き換えが可能なように作成するため、商品名というフィールドを作成しています。
単価・金額…こちらも同様です。単価はマスタの単価を表示し、数量を掛け算した値を金額に表示すれば、特にフィールドを作成する必要がないという場合があります。ただ、こちらも例外があり、その時だけ単価を安くしたり、合計も端数を切り捨てたりと、「一度マスタでは計算し、手入力で変更したい」という要望はかなりのケースであります。ここではこの要望にこたえるために単価と金額のフィールドは作成しています。
次回は、Accessファイルであるaccdbファイルと、現在作成したデータベースを接続し、テーブルに値を入力するという章に移っていきたいと思います。ここまでテーブルの作成に関する内容となります。御覧頂きましてありがとうございます。