今回の家計簿は入出金の履歴を入力できる状態にすることです。
まずはテーブル作成ですが、以下のように作成しました。
定義は後ほどダウンロードしたmdbでご確認ください。
ちなみにSEQでは自作の関数でシーケンスを計算して当てはめるようにします。
今のところ特に意味はないのですが後々重複チェックなどで使えるかな~と。。。
実際のデータ入力時は重複してないか目検でチェックできればと思い
- 抽出条件を指定(しなくても可)して一覧を表示
- ざっと目視でチェック(プログラムによるチェックはかけません)
- 追加・修正・削除を別フォームにて実施
という流れを選択しました。
まずは一覧表示用のフォームから。↓
処理日付に関してですが
- テーブルに格納するデータは8桁の文字列(yyyymmdd)
- 表示する際は見やすいようyyyy/mm/ddで
と思い、プロパティの定型入力を設定しようと思ったら・・・
なんと自宅のAccessでは「機能がインストールされておらず使用できない」とのメッセージが・・・
仕方ないので手動でプロパティから書式を「日付(標準)」にして定型入力を「0000/00/00」にしました。
諸々入力して検索ボタンを押すとリストボックスに該当する明細が表示されます。
というか、検索をかけてリストボックスを表示させた状態でないと入力できないようにしています。
(仮にテーブル内のデータが1件もなくてもよいので検索を行ってから使用しましょう)
この状態でリストボックスを触らずに「入力」ボタンを押すとデータの追加入力を行います。
リストボックス内の特定の行を選択した状態で「入力」をおせばデータの修正・削除ができます。
画面はこんな感じ↓
ここで前々から興味があったもののずっと避けてきたw、トランザクション処理を使ってみました。
本来はこんな使い方しなくても良いのでしょうが、勉強がてら無意味に導入してます。
細かい点はダウンロードして中身を覗いてください。
例によって質問、疑問、訂正、苦情があればコメントへお願いします。