業務上、人のお金を預りそのお金を複数に支払うようなことをしているのですが、誰から幾ら預かって、その内幾らを誰に支払って、残額は幾らかを一目でわかるようなDBを作りたいです。
例: A氏から10,000円預り、5,000円を支払った。残額は5,000円である。次にB氏から50,000円預かり、10,000円を支払った。残額は40,000円である。その後A氏の残額5,000円から3,000円を支払って残額は2,000円である。現時点では、A氏からの預り金残額は2,000円、B氏からの預り金残額は40,000円である。(もし、残額が0円になったら表示一覧から消したい)
こんな事はAccessでできますでしょうか?
可能です。
どのように設計するかですが、Accessはデータベースソフトですので、データをため込んで、必要に応じて、必要なデータを、必要な形に加工して出力する、ということをするものです。
まず、最初に考える必要があることは、どのようなデータをどのうような形でため込むか、です。ため込む場所はテーブルです。ですので、テーブルの設計から始めます。
データを加工して出力するのはクエリだったり、フォームだったり、レポートということになります。しかし元のデータがしっかりしたものでないと自由に加工できません。
呈示の情報から必要なデータは、最低限下記の3つになります。
金額に関しては、預かり金額、支払い金額 と2つのフィールドに分ける方法と、
一つのフィールドで預り金はプラス、支払いはマイナスとする方法が考えられます。
このお金の出し入れの履歴を逐一ため込んでいく形になります。
この履歴テーブルの他に、
お金を借りる相手の情報が氏名だけでなく、連絡先など別に必要なら、
相手先情報のマスターテーブルも必要になります。
テーブルの設計には「正規化」という原則があり、それに沿った設計にしないとデータベースとしては使いものにならないものになります。ただ、かなり奥が深く理解するには敷居が高いものなので、これはおいおい勉強していくといいでしょう。
前置きが長くなりましたが、まずは質問内容を一番シンプルな形でテーブルにすると、下記のようなものになります。
テーブル名 取引履歴
hatenaさま
早速のご回答ありがとうございます。大変丁寧な説明で分かり易いので助かります。
テーブルとデータ例は理解できました。多分テーブルに備考などを付け加えれば
イメージしている処理ができそうです。
集計クエリについてですが、残高だけを表示せずにA氏履歴とB氏履歴に分けて
残高が0になるまでを行をわけて表示することは可能でしょうか?(0になったら非表示)
このような出力はレポートを使うと簡単に見やすく作ることができます。
履歴テーブルを選択しておいて、レポートウィザードでレポートを作成します。
「グループレベルを設定してください」のところで「取引相手」を選択します。
次の並べ替えを指定するところで、「取引日付」の昇順に設定します。
次でレイアウトを「表形式」を選択します。
あとレポート名を設定して完了をクリックで雛形が完成します。
デザインビューで開いて、詳細セクションにテキストボックスを配置して、その設定を下記のようにします。
コントロールソース 取引金額
集計実行 グループ全体
これで相手先ごとにグループ化されて、各行ごとに残高が表示されます。
hatenaさま
度々のご回答ありがとうございます。
教わったことをベースに一度作ってみたいと思います。
ありがとうございました。