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

Access2010、2013 でファイルダイアログのOKボタンの挙動がおかしい

Access クリック 挙動 ダブルクリック? | その他(データベース)のQ&A OKWave

Application.FileDialog でファイルダイアログを呼び出しているのだが、ファイルを選択した後、OKボタンをクリックして反応がない(一応ボタンにフォーカス移動はするようだが)。もう一回クリックして初めてダイアログが閉じてファイル名を取得できる。

Windows7 の Access2010 と 2013 でこの症状がでるのを確認しました。2003では1回のクリックで動作しました。また、Excel2010, 2013 でも1回のクリックでOKでした。どうやら Access2010, 2013 特有の問題のようです。

この解決法を探ってみました。

リンク無し画像

難易度:

挙動の詳細

もう少し症状を調べてみると、OKボタンをクリックするとまずボタンにフォーカスが移動した表示になります。
こ状態でもう一回クリックするとダイアログは閉じてファイル名が取得できます。
2回目にクリックする場所はボタン以外の場所でもいいようです。ダイアログではなく背後のAccess本体でもOKです。
さらに1回クリックした後、マウスカーソルをダイアログ、Access本体の外に移動させるだけでも、ダイアログは閉じてファイル名が取得できます。

ファイルダイアログ

実は、レポートのプレビューから印刷ダイアログを表示させた時も同じ挙動になります。

プリントダイアログ

こちらに関しては、下記の情報が見つかりました。

Access2010の印刷について - マイクロソフト コミュニティ

上記のスレッドの最後の MukkuMuku さんの回答によると、W7SP1 + Access 2010 SP2 で IME2010 を使用すると発生するらしいです。

ということで、試しに、IMEを「Google 日本語入力」に変更したら、ファイルダイアログも印刷ダイアログでも、症状はでなくなりました。

症状の再現法

フォームにコマンドボタン「cmd1」、テキストボックス「txtFileName」を配置します。
フォームモジュールを下記のように記述します。

なお、Windows API を使う方法でもこの症状は再現します。

Windows APIを用いてファイルを開く方法:SampleFile078

対処法

これは、バグだと思いますので、MSのサポート窓口などへの問い合わせて、対策してもらうのが筋でしょう。

ただ、すぐには対応してもらえないと思われますので、とりあえずの対処法としては、

IMEを「Microsoft office IME 2010」以外のものに変更すれば、すべてのダイアログで改善できます。

IME 2010 は使い続けたいという場合は、ファイルダイアログは、WizHook を使う方法だと改善できるようです。

WizHookの詳細は下記を参照してください。

[ファイルを開く] ダイアログを表示する方法 | YU-TANG's MS-Access Discovery


拍手する

Leave a reply






Trackbacks

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