So-net無料ブログ作成

アクセス小僧:アクセス小僧:履歴を残す(10) [コンピューター]

アクセス小僧:アクセス小僧:履歴を残す(9)
https://cheese999.blog.so-net.ne.jp/2019-03-11
で、

DoCmd.GoToRecord acDataFormによる、履歴にあるレコードへの移動をやめ、Me.Recordset.FindFirstによる移動に戻す変更の話をしましたが、データベースによっては、DoCmd.GoToRecord acDataFormでないと、うまく動かない場合もあり、理由が良く分からない状況です。

今回の変更を、とあるデータベースに実施したところ、別の問題が発生してしまいました。

問題:履歴をたどるとき、履歴を更新するUSSaveID1マクロが呼ばれてしまい、表示したレコードが履歴の先頭になってしまう。

原因を探った結果、レコード移動時(Form_Current)のマクロの中で、

[検索テキスト].SetFocus ' 検索テキストのテキストボックスにフォーカス

という1文があるために、検索テキスト_LostFocusイベントが発生してしまい、検索テキスト_LostFocusマクロから、USSaveID1マクロを呼びだしてしまっていたのでした。

1.人間が、フォームを操作して、履歴の中の1レコードを選択する。
2.選択されたレコードを表示→レコード移動時(Form_Current)イベント発生
3.レコード移動時(Form_Current)マクロ起動→[検索テキスト].SetFocusを実行
4.検索テキスト_LostFocusイベント発生→検索テキスト_LostFocusマクロ起動
5.USSaveID1マクロ起動

Form_Currentマクロの中で、SetFocusする対象を[検索テキスト]以外の、USSaveID1マクロを呼び出さないオブジェクトに変更して、問題は解決したようです。

Oasis - The Hindu Times


ロックなのか、ポップなのか、ポップなロックなのか?
なんでもいいや。

相変わらず、良く分からないブログですね~。
ヤバイぜ!
[猫]
ヤバイぜ!(18)  コメント(1) 
共通テーマ:日記・雑感

ヤバイぜ! 18

コメント 1

cheese999

ヤバイぜ! ありがとうございます(^_0)ノ
by cheese999 (2019-03-18 04:58) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字(英大文字の「オー」、英小文字の「ユー」、アラビア数字の「ハチ」、アラビア数字の「イチ」、アラビア数字の「ニ」)を入力してください。

Facebook コメント