
Win2000、Access2000を使用しています。
以下の作業をするためのVBを作成しているのですが、レコードの内容が変更されたかどうかを調べるためのコードとその他のコードとの組み立てがわからず困っています。
部分的にでもかまいませんので、おわかりになる方がいましたら教えてください。
1.フォーム上に作成した「戻るボタン」をクリックした時のイベントで、レコードの内容が変更されていたらメッセージボックスを表示する。
2.メッセージボックスの「はい」をクリックしたら、保存してフォームを閉じる。
3.メッセージボックスの「いいえ」をクリックしたら、変更されたフィールドの値を変更前の状態に戻してフォームを閉じる。
以上、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
ヒントだけ…
フォーム上の連結コントロールの値が変更されたかどうかを知るのは <oldvalue>プロパティを使用します。
If Me!コントロール名.value <> Me!コントロール名.oldvalue then …
と比較することで、変更されたかどうかを知ることが出来ます。
また
Me!コントロール名.value = Me!コントロール名.oldvalue
で、変更前の値に戻すこともできます。
詳細は参考URLやヘルプを参照して下さい。
では、頑張って下さい。
参考URL:http://homepage1.nifty.com/tsware/tips/tips_219. …
No.3
- 回答日時:
#2の方と似たような意見ですが、
非連結のチェックボックスを非表示で配置する。
全てのコントロールのAfterUpdateイベントでチェックボックスをTrueにするコードを挿入する。
フォームのBeforeUpdateイベントでチェックボックスがTrueの場合だけ動くコードを記述する。
フォームのAfterUpdateでチェックボックスをFalseにする。
この場合Undoされたときが問題になりそうです。
未実験です。
No.2
- 回答日時:
更新フラグを立てるということをするのではないでしょうか。
Yes/No型の値を設定し、フォームを開いた時やレコード移動時はNoにし、新規入力や編集された時にYseにして、戻るや閉じるをしようとしたとき、もしYesだったら「更新されていますが保存しますか?」と訊くようにしていますよ。Noならなにも言いません。
で、そのようにするためにはフォームはテーブル等とは非連結にし、DBオブジェクトを操作する、という風にしなければなりません。AccessVBAの中では核心の部分だと思いますが、私はこのあたり「Access97Expert」という本で勉強しました。
ただし97と2000ではDBオブジェクトの扱いが変わっていますので要注意です。(DAO→ADO)
参考URL:http://www.amazon.co.jp/exec/obidos/ASIN/4797304 …
ご回答ありがとうございました。
フォームとテーブルの連結を非連結にするのは、他にも作業があるため、ちょっと厳しいです。
今までDAO、ADOは、ちょっと抵抗があってなるべく使用しないようにしていたのですが、これからは避けずにチャレンジしてみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSでデータ変更箇所が分かるようにする方法
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
6
access テキストボックスの値取得
Access(アクセス)
-
7
Accessでレコードが更新された時に発生するイベント。
その他(データベース)
-
8
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
9
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
10
Access 別フォームへの再クエリ(更新)がしたい。
その他(データベース)
-
11
レコード削除時に(サブ)フォームに表示される#Deleted"について"
Access(アクセス)
-
12
ACCESSのフォーム、開くんですが、見えないようにするには
Access(アクセス)
-
13
Accessフォームで詳細内の任意の行へSetFocus
Excel(エクセル)
-
14
ACCESSのBookmarkプロパティの使い方
その他(データベース)
-
15
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
16
ACCESSで、新規か更新かの判断
その他(プログラミング・Web制作)
-
17
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
18
アクセスのフォームのビューが表示されないのですが、
その他(データベース)
-
19
Accessの更新後処理で特定の条件を満たしている場合、フォーカスを移動させない方法
PowerPoint(パワーポイント)
-
20
アクセスで#エラーを表示させない方法は?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
Excel 数値の前の「 ' 」を一括...
-
病院側から早く来てくださいと...
-
VLOOKUP関数を使用時、検索する...
-
小数点以下を繰り上げたものを...
-
リンク先のファイルを開かなく...
-
エクセルで空白セルを含む列の...
-
値が入っているときだけ計算結...
-
勃起する時って痛いんですか? ...
-
MIN関数で空白セルを無視したい...
-
彼女のことが好きすぎて彼女の...
-
2つの数値のうち、数値が小さい...
-
レインボーシックスシージをし...
-
エクセルのラベルの値(文字列...
-
腕を見たら黄色くなってる部分...
-
エクセルで数式の答えを数値と...
-
検便を取ったのですが、棒から...
-
値が入っている一番右のセル位...
-
増減表のプラスマイナスの符号...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
値が入っているときだけ計算結...
-
彼女のことが好きすぎて彼女の...
-
尿検査前日に自慰行為した時の...
-
VLOOKUP関数を使用時、検索する...
-
Excel 数値の前の「 ' 」を一括...
-
精液の落とし方を教えてください
-
【Excelで「正弦波」のグラフを...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
リンク先のファイルを開かなく...
-
小数点以下を繰り上げたものを...
-
EXCELで条件付き書式で空白セル...
-
イタリアから帰国する際、肉製...
-
excelでsin二乗のやり方を教え...
-
腕を見たら黄色くなってる部分...
-
病院側から早く来てくださいと...
-
ワードのページ番号をもっと下...
おすすめ情報