MS Access Tips/Sample and VBA and Blog customize etc...

AC2007のバグ?ダブルクリックでフォームを開くとき

ある項目(テキストボックス)をダブルクリックすると別の入力フォームが開くようにしています。Access2003までは、開いた入力フォームがアクティブになりましたが、Access2007では一瞬入力フォームがアクティブになりますが、すぐ呼び出したフォームへフォーカスが戻ってしまいます。以前のように開いたフォームがアクティブのままにするにはどうしたらいいでしょうか。

上記のような内容の質問がありました。私も同じ問題に直面したことがあります。Access2007になってからダブルクリックの動作の仕様が変更になったようです。(というかほとんどバグ?)

さっそく、私がとった対処法を掲示板で回答しました。ところが、、、、、

難易度:

ダブルクリックした直後に、フォーカスが戻ってしまうので、フォームを開くタイミングを後にずらせばいいのではないか、と考えて、下記のようにしました。

ダブルクリックでフラグをオンにして、マウスボタン解放時に、フラグがオンの時は 入力フォームを開く。イベントが2箇所に分かれるし、モジュールレベル変数が必用になるので、ちょっと不細工だがしょうがないかな。念のためにサンプルも作って動作確認。問題なく開いたフォームがアクティブなままです。よし、投稿ボタンクリック。

小一時間後、投稿にレスがあったと通知メールが入る。おっ、回答者からお礼のレスか、と思い、内容をチェックしてみると、別の回答がついているではないですか。その回答のコードが、、

Cancel = True 1行追加するだけじゃん。サンプルで確認、入力フォームはアクティブなまま。ダブルクリックを無かったことにすれば、当然、ダブルクリックの変な仕様変更の影響を受けないわけです。なぜ、こんな簡単なことに気がつかなかったんだろう(恥汗)。たぶん、クリック時に Cancel はないので、当然、ダブルクリックにもCancelはないと思いこんでいたんだな。まだまだ、精進が足らんな。

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/277-fea804ba
該当の記事は見つかりませんでした。