Microsoft Access 掲示板

Accessから他のアプリを呼び出す・フォームボタンからVBAコードを用いて・バックグラウンドで開くがフォアで開いてほしい

2 コメント
views
4 フォロー

お世話になります。
数年にわたって悩んでいることで、どなたか解を見つけている方がいらっしゃいましたら、お願いします。

AというMDBのフォームボタンのクリックで、Bという同じくMDBを開く処理を作っています。

Private Sub cmdBtn_Click()
    Dim objACCESS As Object
    Set acApp = New Access.Application
    With acApp
        .Visible = True
        .UserControl = True
        .OpenCurrentDatabase "B.mdb"
    End With
End Sub

Bを開くこと自体はできるのですが、いつもバックグラウンドで開いてしまい、タスクバーのボタンがオレンジ色に点滅します。

不思議なことに、Aの通常画面・単独ではうまくいかなくても、バックでVBEditorを開いている場合、あるいは開いた後で閉じた場合でも、通常画面を閉じるまでは、ちゃんとフォアグラウンドでBが開きます。

自分のPCのみならず、他の方のPCでも、同様です。そこそこ新しめのマシンで、Windows10でも7でも同様です。

宜しくお願い致します。

おさるのおやこ
作成: 2020/02/28 (金) 17:11:15
最終更新: 2020/02/28 (金) 17:13:35
通報 ...
1
hatena 2020/02/28 (金) 22:51:36 修正

他のMDBを起動するだけなら、Shell関数で開けばいいでしょう。

Sub cmdBtn_Click()
    Dim rc As Long
    rc = Shell("MSACCESS.exe C:\TEST\test.mdb", vbNormalFocus)
    If rc = 0 Then MsgBox "起動に失敗しました"
End Sub

Shell 関数 (Visual Basic for Applications) | Microsoft Docs

2
おさるのおやこ 2020/03/02 (月) 18:25:55 49acd@6ddcc

Shell関数で、うまくいきました!!
長年の懸案が解決です。本当にありがとうございました。