vbs でAccessを開く処理を作成しています。 AccessのAutoExecでパスワード入力用のInputboxを表示させているのですが、

Visual Basic | Microsoft Access32閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

ThanksImg質問者からのお礼コメント

3案もご教授頂きありがとうございます。 全て試した結果ですが、 B・C案は症状は変わらずでした。 A案は、inputboxがアクティブになりましたので、 こちらで対応させて頂きます。

お礼日時:5/7 9:30

その他の回答(2件)

0

InputBox 等のダイアログウィンドウはモーダル表示されますので、応答するまで VBAの実行は全て中断されます。つまり、別プロセスからしか制御できない状況です。 以下のvbsコードをコピペして一つのファイルにし、InputBoxの表示直後に Runメソッドを使って非同期で呼び出せば成功する確率は高まります。 Option Explicit Const ExecuteFileName = "MSACCESS.EXE" Dim objShell Set objShell = WScript.CreateObject("WScript.Shell") objShell.AppActivate(GetProcessID) Set objShell = Nothing ' ---------------------------------------- Private Function GetProcessID()     Dim objWMI     Set objWMI = WScript.CreateObject("WbemScripting.SWbemLocator")     Dim objLocal     Set objLocal = objWMI.ConnectServer     Dim objProcesses     Set objProcesses = objLocal.ExecQuery("Select * From Win32_Process")     Dim objProc     For Each objProc In objProcesses         If UCase(objProc.Name) = UCase(ExecuteFileName) Then             GetProcessID = objProc.ProcessId             Exit For         End If     Next     Set objProcesses = Nothing     Set objLocal = Nothing     Set objWMI = Nothing End Function

0

こんにちは。 (まだ実行してませんけど) これ、accessをcreateしたら、obj.visible = true が必要なのではないかと。 エクセルだったら、それしないと、画面なんて表示しませんよ。 確認してみてください

画面は表示されております。 visibleも試してみましたが症状は変わりませんでした。 タスクバーのアイコンがオレンジ点滅しているので、 アクティブになっていない事が原因のようです。