独学で会社のシステム作成したとき、一番苦労したのが登録ボタンやキャンセルボタン。1件のみならフラグをたてて制御可能ですが、複数件がいいので試行錯誤のうえ、このやり方にしました。
ファイルメーカーは自動保存です。
けど、やっぱり登録ボタンやキャンセルボタンがほしい。
どうにかしてできないのかしら?
サンプル

簡単な例ですが、このような業務日報を入力していく場合、データベースの中はこのようになります。

業務内容1つで1件のレコードになります。
12/1の日本さんは3件、12/1の花田さんは1件、人によってレコード件数が変わるわけです。
入力画面は業務日報と同じ様式に作成します。
そのほうが入力しやすいですし、入力間違いも発見しやすいです。
修正するときも修正対象のレコードだけではなく、入力画面と同じように表示されていたほうがやりやすいです。
こういうデータの場合はポータル表示(または外部キー)をつかうのがセオリーなのですが、
ポータル表示はデメリットもあり、業務特性を考慮するとあまり使いたくなかったのです。
編集用テーブルを作成
本データのテーブルをコピーして編集用のテーブルを作成します。

図のような流れです。
- 編集するときは本テーブルから必要なデータを編集用テーブルへインポート
- 編集が終わったら登録ボタンで本データへエクスポート(データを入れ替える)
- 新規データは編集用テーブルで作成し、登録ボタンで本テーブルへエクスポート
- キャンセルボタンを押したら、編集用テーブルのデータを削除
編集用テーブルにはエクスポートするたびデータ削除して空にします。
これで思ったように(日付と社員番号の修正以外は)制御することができました。
日付と社員番号の修正
「日付ー社員番号」をキーにしていたので、日付と社員番号の修正できるようにするのはとても面倒でした。いろーーんなところに影響がでてきますので。(これが怖いんですよ~)
画面上では日付と社員番号は1つしかみえていませんが、データベース上は業務内容ごとにデータがあります。
日付や社員番号を修正するのはできない(入力禁止に設定)ので削除してもう一度入力するという、これまた面倒なことをやっていたのですが・・・自分が耐え切れなくなり、
(恐る恐る)登録ボタンを押したときにloopで日付と社員番号を上書きするスクリプトを追加して、データ入替部分を修正しました。
まとめ
独学での大変さが身にしみてわかりました。
毎日(誰か教えてくれーー)って思ってました。
もちろんGoogle先生にも聞きましたが、自分がやりたいこととちょっと違ったり、方法が見つからなかったりで。
たぶん、プロのエンジニアさんが私の作ったシステムみたら「なんだ?これ?」って笑われるレベルだと思うんですよね。
でも見せることはないと思うし、もし見せるとしたら私が退職したあと(維持管理できる人がいない)かなー?
とりあえず動いているからOK!!
ファイルメーカー代金は会社の経費ですが、システム作った報酬はゼロです!
仕事中はやっている時間がないので、休みの日を使って作ったんですけどね。
ファイルメーカーの使い方が覚えられたのでいっかー