※ ChatGPTを利用し、要約された質問です(原文:ORACLE,VB6を使った家計簿ソフトを作ってます)
ORACLE,VB6を使った家計簿ソフトの開発 - 家計を管理するための簡単なプログラム
このQ&Aのポイント
ORACLE,VB6を使って家計簿ソフトを開発しています。コンボボックスやテキストボックスを使って登録日、明細区分、グループ、備考、金額を入力し、SPREADシートに追加していきます。また、登録日の入金合計、出金合計、残高を計算して登録します。過去の残高の修正やデータの登録によって現在のデータが変わってしまう問題についても悩んでいます。
過去の残高修正によって現在のデータが変わる問題について、どのように処理すればよいのか悩んでいます。過去の残高を修正した場合、それ以降のデータの残高を一つ一つ再計算して登録し直す必要があるのでしょうか?データベース上で一括で残高を書き換える方法はあるのでしょうか?また、D日付データテーブルに残高を持たせるのが適切なのかも検討したいです。
ORACLEとVB6を使って家計簿ソフトを開発しており、登録日、明細区分、グループ、備考、金額を入力し、SPREADシートに追加しています。また、登録日の入金合計、出金合計、残高を計算して登録します。問題として、過去の残高修正によって現在のデータが変わることがあるため、どのように処理すればよいのか悩んでいます。一括で残高を書き換える方法や、D日付データテーブルに残高を持たせるべきかも検討したいと考えています。
ORACLE,VB6を使った家計簿ソフトを作ってます
初めて投稿させていただきます。
プログラム暦半年の者です。
今年の春から未経験でソフト開発の会社で研修を受けたり雑用したりしています。
現在開発言語にVB6.0、データベースにORACLE8を使って個人的に家計簿ソフトを作っています。
コンボボックスやテキストボックスを使い
・登録日
・明細区分(入金or出金)
・グループ(入金→給与,仕送 / 出金→家賃,光熱費)
※別マスター登録プログラム有り
・備考
・金額
を入力し、SPREADシートに追加していき、登録日の入金合計、出金合計、残高を計算して登録するという簡単なプログラムです。
テーブル構成は
M明細区分(detailkbn_no, detailkbn_name)
Mグループ(detailkbn_no, group_no, group_name)
D日付データ
(target_day --登録日,
get_total --入金合計,
spend_total --出金合計,
balance --合計 )
D明細
(target_day --登録日,
detail_no --明細No,
detail_kbn --明細区分No,
group_no --グループNo,
note --備考,
amount --金額 )
という感じです。
メインのフォームでは
D日付データ
D明細
にデータを登録するのですが,残高の計算は現在
前登録日残高 + (現登録日入金合計 - 現登録日出金合計)
としています。
しかしこれでは残高が過去の残高に依存しているので、過去の残高を修正したり過去のデータを登録したりすると現在のデータが変わってしまいます。
こーいう場合はどのように処理したらよいのでしょうか??
過去の残高を修正した場合はそれ以後のデータの残高を一つ一つ再計算して登録し直すしかないのでしょうか??
(データ件数が増えた場合に非常に時間がかかってしまいそうです…)
データベース上で一発でそれ以降のデータの残高を書き換えるなんてことは不可能なのでしょうか??
そもそもD日付データテーブルに残高というフィールドをもたせたことに無理があるのでしょうか??
(登録日でグループ化したSUM(入金合計)-SUM(出金合計)を残高として表示させるだけにするとか…)
長々と申し訳ありませんでした。
説明が足らない部分も多々あるとは思いますが理解できる範囲で結構ですのでどなたかご教授いただけると助かります。
よろしくお願いします。
お礼
なるほど!! そういう考え方があるんですね。 非常に参考になりました。早速試してみます! ご丁寧な説明ありがとうございました。