C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.101560 の関連記事表示

<< 0 >>
■101560  Re[2]: VBからAccessのFormを表示
□投稿者/ こうべ -(2023/03/15(Wed) 11:22:15)
    お恥ずかしい
    私は勘違いをしていました。
    Accessのメインフォームは背面に移動したことで、目的は達成したと思っていましたが、
    Accessのメインフォームがアクティブのままで、目的は達成できていませんでした。

    やりたかったことは、VBからAccessのFormを表示し、AccessのFormからリターン後は普通にVBのFormで操作できることです。
    ただ、機能追加を依頼されたプログラムが不思議な構造をしており、Accessでメニュー画面が作られており、VBはそのメニューから起動されることがありました。(VBが単独で起動されることもあるらしい)
    このことは、依頼された時には全く説明がありませんでした。

    それで、CreateObjectでAccessを起動し、Accessで作成されているFormを表示させました。
    そしたら、開いたフォームが背面に隠れる場合がありましたので、SetForegroundWindowでAccess メインウィンドウを最前面にしました。

    その後、Accessで作成したメニュー画面からVBが起動される場合があることを知らされ、CreateObjectでAccessを起動すると同じメニュー画面が二重に表示されることになるため、Accessを起動しているかどうかをGetObjectをすることで確認し、起動されている場合は起動済のAccessでFormを表示するように変更しました。

    そしたら、AccessのFormを閉じた後にAccessで作成したメニュー画面が最前面に残ったままとなったため、背面に移動しようとした次第です。
    起動済のAccessでFormを表示した場合、Accessの起動はユーザーが行っているため、Accessで作成したメニュー画面は表示させたまま、VBのFormを最前面に戻し、操作できる状態にしたかった。
    AppActivate、SetForegroundWindowでVBのFormを最前面に表示しようとしましたが、できなかったので、TopMostを使ってみました。
    最前面に表示されたことで、てっきりうまく実行できていると思っていましたが、アクテイブだったのはAccessでした。


記事No.101547 のレス /過去ログ177より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -