我有一個Access 2016應用程序,可以分發給許多不熟練的用戶。他們通常必須安裝MS Runtime for Access。儘管方向明確,但仍有太多用戶仍然發現應用程序無法打開。看起來早期綁定的對象不存在於系統上。綁定對象不存在時,不會加載或運行代碼,因此甚至不可能提供良好的錯誤消息。如何在Access 2016中使用VBA檢測對象的存在?
我現在正在嘗試編寫一個小程序,其中應用程序所需的所有對象都是後期綁定的,因此能夠說出哪些模塊丟失,如果有的話。我發現的是雖然我知道對象存在,但我的檢測方法仍然失敗。下面的代碼是所需對象的一個測試示例。這個測試總是失敗,我不知道爲什麼。我有大約7個。三個似乎工作正常,但其他人沒有。有什麼不同的方式我應該編寫「CreateObject」?
Private Sub btnOffice_Click()
'Office FileDialog MSO.DLL Microsoft Office 16.0 Object Library
Dim obj As Object
On Error GoTo xyzzy
Set obj = CreateObject("Office.FileDialog")
lblOffice.Caption = "Office module present"
Exit Sub
xyzzy:
lblOffice.Caption = officeWarning
MsgBox Err.Description
End Sub
[error 429](https://msdn.microsoft.com/en-us/library/aa231060(v = vs.60).aspx) – SeanC
「失敗」是什麼意思 - 錯誤消息,錯誤結果,什麼都沒有發生?查看https://support.office.com/en-us/article/FileDialog-Property-8510B02D-E455-44A9-BF38-3787E6D5C8C1。也許'Set obj = Application.FileDialog(msoFileDialogFilePicker)' – June7
@SeanC我已經在那個列表中。它似乎並不適用。我正在測試的所有對象都存在並在我的主應用程序中工作,它們在早期綁定。爲什麼在這種情況下CreateObject會失敗? – LostInTheTrees