• ベストアンサー

Access フォームが前面に表示されない

Access フォームが前面に表示されないPCがあります どのようにしたら、前面に表示できるのでしょうか? ※Windows XP(sp3)+Office 2000(sp3)ですが、  前面に表示されないPCと前面に表示されるPCがあります 状況 ・該当フォームは、ポップアップ=はい,作業ウィンドウ固定=はい にて作成しています。  またサブフォームを持っています ・ALT+TABにて、Accessを切替表示すると前面に表示されます なにかヒントをお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

私、誤解していましたね。 Bフォームが開いているのに最前面に上がってこないのではなく Bフォームが開かれていないように見える・・が正解? 簡単な実験をしてみました。 イミディエイトウィンドウで docmd.OpenForm "Bフォーム",acNormal ではBフォームに切り替わらず、手動で行わねばなりませんでした。 (一瞬Bフォームが見えますが、VBEのウィンドウに戻ってしまう。当たり前か。。) docmd.OpenForm "Bフォーム",acNormal,windowmode:=acDialog ではBフォームが出てきてくれました。 >ポップアップ=はい,作業ウィンドウ固定=はい にしてあるので、windowmode:=acDialog は『シツコイ』ような気がしますが 参考になるかな? ただこの場合にVBEに戻ると、Bフォームを閉じるまで『実行中』になっているのが 気に掛かります。この辺りは私も未経験ゾーンです。 これでも効果が無ければ >(2)Aフォームをクリックして、Bフォームを表示する のコードを省略せずに載せてください。 ※解決に繋がらないかもしれません・・・。

Koba5
質問者

お礼

nicotinismさん コメントありがとうございました

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

#1はともかく#2の回答でイケルかなと考えたのですが、全滅ですか。 表示されていない時にタスクバーで当該のAccessはオレンジ色で表示されているのでしょうか。 。。。。。。 確証も無くこれ以上余計な手間を取らせるわけにも行かず・・。 ごめんなさい。降参です。 PCの(Accessの)設定または差異を確認されては・・ぐらいしか言えません。

Koba5
質問者

お礼

nicotinismさん お忙しいところ、コメントありがとうございます 説明が足りず申し訳ありません。 動きは下記の通りです (1)Aフォーム表示 (2)Aフォームをクリックして、Bフォームを表示する ※この時、通常では、Bフォームが表示されますが、 特定のPCでは、待っていてもBフォームが表示されません。 この時タスクバーは、通常のまま (Aフォームがずっと表示されています) ここで、ALT*TABにてAccessを選択するとBフォームが表示される という状況です。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

こっちの方が良いかも? Set objShell = CreateObject("Wscript.Shell") objShell.AppActivate "出てきておくれ" Set objShell = Nothing 前回の回答と差し替えてください。 ※フォームのタイマ間隔は0に、タイマ時のイベントプロシージャは消してください 記述する場所は前回と同様にコマンドボタンのクリック時?か そのフォームのオープン時にしてください。 出てきておくれは  Windowsのタスクマネージャのアプリケーションタブにある 最前面に持ってきたいタスク名を入れてください。

Koba5
質問者

お礼

nicotinismさん コメントありがとうございます objShell.AppActivateを実施しましたが、変わりませんでした ※SetFocus,Docmd.SelectObject,AcFormも行いいましたが、うまくいきませんでした。

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

Accessも含めて何かが忙しくて・・かな 遭遇した記憶が無いので駄目もとで・・ コマンドボタンから開いてるのならそこに追加して Docmd.OpenForm・・の後に DoEvents Forms!フォーム名.SetFocus とか Docmd.SelectObject,AcForm,"フォーム名" または フォームのイベント欄のタイマ間隔に 300 300(ミリセカンド)は適当に変更 タイマ時イベントのイベントプロシージャに Me.setFocus Me.TimerInterval=0 では?

関連するQ&A

専門家に質問してみよう