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.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は、ちょっと抵抗があってなるべく使用しないようにしていたのですが、これからは避けずにチャレンジしてみようと思います。
No.3
- 回答日時:
#2の方と似たような意見ですが、
非連結のチェックボックスを非表示で配置する。
全てのコントロールのAfterUpdateイベントでチェックボックスをTrueにするコードを挿入する。
フォームのBeforeUpdateイベントでチェックボックスがTrueの場合だけ動くコードを記述する。
フォームのAfterUpdateでチェックボックスをFalseにする。
この場合Undoされたときが問題になりそうです。
未実験です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Access(アクセス) accessについて(超初心者です) 1 2023/02/11 11:18
- Windows 8 動画の再生とタイトルの変更方法を教えてください。 3 2022/08/01 14:51
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ACCESSでデータ変更箇所が分かるようにする方法
Access(アクセス)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
5
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
6
Accessでレコードが更新された時に発生するイベント。
その他(データベース)
-
7
【Access】テキストボックスに入力後、そのテキストボックスを無効化する方法について
その他(Microsoft Office)
-
8
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
9
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
10
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
11
前のレコードの値を自動で入れたい
PowerPoint(パワーポイント)
-
12
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
13
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
14
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
15
アクセスからエクセルのシートを追加して、名前をつける方法
Excel(エクセル)
-
16
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
17
ACCESSフォーム入力後の確定
Access(アクセス)
-
18
access マクロでのフィルタの解除の方法
Access(アクセス)
-
19
フィルタ後のフォームの件数の取得の仕方
Access(アクセス)
-
20
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
口の中に黒い血の塊
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
中出しをするとお腹が痛い・・・。
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
爪が紫色?
-
納豆食べた後の尿の納豆臭は何故?
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
尿検査の前日は自慰控えたほう...
-
EXCELで式からグラフを描くには?
-
excelでsin二乗のやり方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報