※ ChatGPTを利用し、要約された質問です(原文:VBからaccess UserControl)
VBからAccess UserControl: オートメーションでアプリケーションが起動された場合はFalseを返すのか?
このQ&Aのポイント
VBからアクセスのファイルを開いているが、アクセスの標準モジュールで実行するとTrueが返ってくる。
アクセスのヘルプによると、Trueはユーザーによって起動されたことを示し、Falseは他のアプリケーションによってオートメーションで起動されたことを示す。
VBで実行されるAccOpenはオートメーションに該当するため、正しくはFalseが返ってくるべき。
vb.netから
【VB】--------------------------------------------
Sub AccOpen()
Dim AccApp As Access.Application
Dim MyPath As String
MyPath = "○○.accdb"
AccApp = CreateObject("Access.Application")
AccApp.OpenCurrentDatabase(MyPath)
AccApp.Visible = True
AccApp.UserControl = True
End Sub
--------------------------------------------------
でアクセスのファイルを開いているのですが、
アクセスの標準モジュールで
【access】--------------------------------------------
Sub test()
MsgBox "The user started Access: " & Application.UserControl
End Sub
----------------------------------------------------
を実行すると、Trueが返ってくるのですが、正しくはFalseなのではないでしょうか?
アクセスのヘルプをみると、
・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
True
現在のアプリケーションはユーザーによって起動されました。
False
現在のアプリケーションは、オートメーションを使って他のアプリケーションによって起動されました。
と書かれています。
・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
AccOpenはvbで実行しているので、
「オートメーションを使って他のアプリケーションによって起動されました。」
に該当するのではないでしょうか?
お礼
そうでしたかwうっかりしてました。ありがとうございました。