Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1561 / 2272 ツリー ←次へ | 前へ→

【6515】[AC2002]ファイルダイアログキャンセル時の挙動について nyoro 05/10/17(月) 16:28 質問[未読]
【6521】Re:[AC2002]ファイルダイアログキャンセル... 小僧 05/10/17(月) 18:03 発言[未読]
【6531】Re:[AC2002]ファイルダイアログキャンセル... nyoro 05/10/18(火) 11:08 お礼[未読]
【6532】Re:[AC2002]ファイルダイアログキャンセル... nyoro 05/10/18(火) 11:32 質問[未読]
【6534】Re:[AC2002]ファイルダイアログキャンセル... 小僧 05/10/18(火) 11:43 回答[未読]
【6537】Re:[AC2002]ファイルダイアログキャンセル... nyoro 05/10/18(火) 13:17 お礼[未読]

【6515】[AC2002]ファイルダイアログキャンセル時...
質問  nyoro  - 05/10/17(月) 16:28 -

引用なし
パスワード
   この掲示板にははじめての投稿になります。よろしくお願いします。

現在AC97をAC2002にバージョンアップ作業をしています。
ファイルオープンダイアログ表示はAC97まではActiveXを使用していましたが、
AC2002から新機能のmsoFileDialogPickerを使用することにしました。
ダイアログは正しく表示されるのですが、ファイルを選択しないで
キャンセルした場合やエラーとなって前画面に戻った場合に、
キーボードの挙動(たとえばTABキーによるフォーカス移動)が行われなくなります。
Windows画面自体の選択がキャンセルされているような状態で、
一度画面上をマウスクリックすれば復活するのですが。。。
試行錯誤したところ、一旦画面をクロース処理してから再度オープンさせれば
よいことだけはわかりましたが、オープン時にも他のイベントやらが
入っているのでなるべく避けたい状況です。

なにかもっとスマートな方法をご存知の方はいませんか?

【6521】Re:[AC2002]ファイルダイアログキャンセル...
発言  小僧  - 05/10/17(月) 18:03 -

引用なし
パスワード
   ▼nyoro さん:
こんにちは。

こちらでも同様の事象が再現致しました。(WinXP,Ac2002)

色々試してみたのですが、
画面の切替がおきないと制御がうまくいかないようですね。

小細工ですが、こんなのはいかがでしょうか。
キャンセルが実行された後あたりに

  SendKeys "^{F6}", True
  SendKeys "^{F6}", True

※ 当方は API に詳しくないので解りませんが、
  識者の方からもっとスマートな回答を頂けるかも知れません。

【6531】Re:[AC2002]ファイルダイアログキャンセル...
お礼  nyoro  - 05/10/18(火) 11:08 -

引用なし
パスワード
   ▼小僧 さん:
>
>
>小細工ですが、こんなのはいかがでしょうか。
>キャンセルが実行された後あたりに
>
>  SendKeys "^{F6}", True
>  SendKeys "^{F6}", True
>
レスありがとうございます。
なるほど、CTRL+F6で画面切り替えですか。

クローズ&オープンに比べればかなりよい方法だと思います。
早速使用してみたいと思います。

ありがとうございました。

【6532】Re:[AC2002]ファイルダイアログキャンセル...
質問  nyoro  - 05/10/18(火) 11:32 -

引用なし
パスワード
   ▼小僧 さん:
>
>小細工ですが、こんなのはいかがでしょうか。
>キャンセルが実行された後あたりに
>
>  SendKeys "^{F6}", True
>  SendKeys "^{F6}", True
>
デザイン状態からのテストではうまくいったのですが、
先頭から起動するとデータベースウィンドウが表示されなくなったことで、
残念ながら画面切り替えもおこなわれなくなってしまいました。

他に何か解決策ご存知の方いませんか?

【6534】Re:[AC2002]ファイルダイアログキャンセル...
回答  小僧  - 05/10/18(火) 11:43 -

引用なし
パスワード
   ▼nyoro さん:
こんにちは。

>先頭から起動するとデータベースウィンドウが表示されなくなったことで、
>残念ながら画面切り替えもおこなわれなくなってしまいました。

では次の小細工を…

  SendKeys "%{ESC}", True
  SendKeys "%+{ESC}", True

Alt + Esc で画面移動して元に戻してみました。

これでうまくいくと良いのですが…。

【6537】Re:[AC2002]ファイルダイアログキャンセル...
お礼  nyoro  - 05/10/18(火) 13:17 -

引用なし
パスワード
   ▼小僧 さん:

何度も返答ありがとうございます。
>
>では次の小細工を…
>
>  SendKeys "%{ESC}", True
>  SendKeys "%+{ESC}", True
>
>Alt + Esc で画面移動して元に戻してみました。
>
>これでうまくいくと良いのですが…。

制御はうまくいったのですが、別画面が一瞬表示されてしまうのがちょっと。。。

で、こちらでもその後いろいろと試行錯誤しまして、
以下の方法を使用することにしました。

DoCmd.Minimize
DoCmd.Restore

こちらも一瞬最小化表示が目に見えますが、これならユーザにも辛抱してもらえるかなと。。

それでは協力ありがとうございました。

1561 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078230
(SS)C-BOARD v3.8 is Free