Microsoft Access 掲示板

非連結テキストボックスの変更前の値取得 / 3

9 コメント
views
4 フォロー
3

フォームにあるテキストボックスの値が以前と変更があったかどうかの確認したいですが、

この以前の値というのがなんなのかをまずは明確にしてください。
あるいはその非連結コントロール(非連結フォーム)の使用目的も明確にしてください。

連結コントロールの場合のOldValueは下記の公式ドキュメントに解説があります。

Control.OldValue プロパティ (Access) | Microsoft Learn
OldValue プロパティは、連結コントロールの編集前の値を格納するために使用されます。 フォームの連結コントロールを編集しても、変更内容は、他のレコードに移動するまで保存されません。 OldValue プロパティには編集前のデータが格納されます。

レコードを保存すると、レコード ソースは更新され、コントロールの現在の値と OldValue プロパティの値は等しくなります。

連結フォーム上でコントロールを編集しても保存アクションを実行しないかぎりテーブルは更新されません。この更新前のテーブルの値がOldValue、編集中のコントロールの値がValueということになります。

その非連結フォームが、
テーブルから値を読み込みコントロールに設定する。
ユーザーがコントロールを編集する。
保存ボタン等で編集内容をテーブルに保存する。
という機能を持っているものなら、
読み込み時のテーブルの値が、連結コントロールのOldValueと同等のものいうことになります。

通報 ...
  • 4
    チョコラブ 2023/03/28 (火) 09:22:46 9af1b@93fe9 >> 3

    hatenaさん
    お返事が遅くなり申し訳ありません。
    この以前の値が何かというのは二つあり、
    例としてひとつは
    11.00~15.00という値があるテキストボックスから抽出し、下限11.00、上限15.00という風に
    一つのテキストボックスから下限の値と上限の値を自動で抽出してくれるようにプログラムを作りました。
    ただ、テキストボックスにも下限、上限の値だけではなく他の文字列が混ざることがありうまく抽出できないので
    抽出できなかった場合はテーブルに登録をしたいのです。
    そこで、下限と上限の値に変更があれば登録をしたいんですが、プログラムでテキストボックスから自動で抽出された値に変更があれば登録しますか?という画面を出したいのです。

    もう一つはhatenaさんのおっしゃるようにテーブルに登録した後に修正したい場合は読み込み時のテーブルがOldValueに該当するというのがこれですね。
    一旦すべて登録してしまい、修正する形のほうがやりやすいでしょうか。
    どのようなやり方がいいのか迷っています。