Microsoft Access 掲示板

サブフォームのレコードを更新する際に起こるエラーについて / 8

13 コメント
views
4 フォロー
8
りんご 2021/07/19 (月) 22:40:26 c564b@0e907

>> 4
 まず、テーブルがわからなかったのですが、こんな感じですか?
契約マスタ_ワークテーブル:契約番号,契約名,請求先,顧客ID,…
                      単独主キー       請求先と顧客の関係性は何かありますか?
月額マスタ_ワークテーブル:月額ID,契約番号,入金月,税抜価格,…
                      単独主キー
 次に、業務がわからなかったのですが、使った分だけお支払い、上限ありのサービスをイメージすれば良いですか?
 最後に、本テーブルって何でしょうか?毎回、ワークテーブルのレコード全削除、本テーブルのレコードを全コピー、登録ボタンを押すと、全置換されたりするのでしょうか。
 

通報 ...
  • 11
    だいふくもち 2021/07/20 (火) 11:07:32 >> 8

    >りんごさん
    テーブル構造をうまく伝えられず申し訳ありません…
    以下の画像で伝わりますでしょうか…?
    画像1
    月額マスタには単独主キーが存在しません。
    (参考書でテーブルには必ず主キーを設定すべしと書いてあったため、
    最初は月額IDフィールドを作成していたのですが、
    編集したり、消したりという処理が多く、連番を管理する技術がなかったため
    フィールド自体を消してしまいました…)

    業務内容は、数年単位のリース契約が主です。契約期間が終わるまで、特定の月に請求するという感じです。

    本テーブルという分かりづらい言葉を使ってしまい、申し訳ありません…
    新規登録や編集に使うワークテーブルに対し、
    データを蓄積するテーブルという意味で「本テーブル」と書きました。
    例えば、編集する場合の流れだと

    ① 帳票形式の検索フォームで、ユーザーが編集したいレコードを選択する
    ② 選択したレコードの契約番号をフラグテーブルに追加し、同じ契約番号のレコードの編集を防ぐ
    ③ データを蓄積しているテーブル(本テーブル)から、選択したレコードの契約番号を検索する
    ④ 検索したレコードを空のワークテーブルに移す
    ⑤ ワークテーブルがレコードソースの編集フォームを開く
    ⑥ ユーザーが編集する
    ・フォーム上の登録ボタンを押した場合
    ⑦ 編集したレコードの契約番号を本テーブルから検索し、そのレコードを削除する
    ⑧ ワークテーブルから本テーブルにレコードを移す
    ⑨ ワークテーブルからレコードを全削除する
    ⑩ フラグテーブルから編集したレコードを消す
    ・フォーム上のキャンセルボタンを押した場合/ユーザーが画面を閉じた場合
    ⑦ ワークテーブルからレコードを全削除する
    ⑧ フラグテーブルから編集したレコードを消す