Как определить, скомпилировано ли ваше приложение Microsoft Access, т. е. работает ли оно как ACCDE

Есть ли у кого-нибудь VBA, чтобы определить, работает ли ваше приложение Microsoft Access 2013/2016 как ACCDE, т.е. скомпилировано?

Я хотел бы, чтобы мой код останавливался и ломался, если происходит ошибка и а) это я запускаю его (среда («имя пользователя»)), и если это не ACCDE.

У кого-нибудь есть предложения?


person Barry Seymour    schedule 18.01.2017    source источник


Ответы (3)


Адаптировано из https://access-programmers.co.uk/forums/showthread.php?t=229474 и http://allenbrowne.com/ser-53.html

Public Function IsACCDE() As Boolean

    ' Init
    IsACCDE = False

    ' This property exists only in compiled DBs (.mde, .accde)!
    ' Ignore error (and stay "False") if not.
    On Error Resume Next
    IsACCDE = (CurrentDb.Properties("MDE") = "T")

End Function
person Andre    schedule 18.01.2017
comment
Идеальный! Именно то, что я искал, работает удовольствие. Благодарю вас! - person Barry Seymour; 19.01.2017
comment
Если ответ решил вашу проблему, вы можете принять его, это также помечает вопрос как решенный. @БарриСеймур - person Andre; 20.01.2017
comment
Спасибо. Не был уверен, где эта опция, но я нашел ее. - person Barry Seymour; 21.01.2017

Я использую это, которое является частью Access VBA:

If IsCompiled = False Then
        DoCmd.RunCommand (acCmdCompileAndSaveAllModules)
End If
person Tom Hamilton    schedule 23.07.2019
comment
Это отвечает на другой вопрос. IsCompiled всегда будет истинным в .accde, оно может быть ложным только в .accdb - person Andre; 23.07.2019

Я не смог найти никаких свойств, которые постоянно давали бы мне правильный ответ. Затем я понял, что все эти подходы были приближением к тому, что я действительно хотел знать. Теперь я просто спрашиваю прямо, если это accde.

Private Function InDevelopment() As Boolean

On Error Resume Next

    InDevelopment = False
    InDevelopment = (InStr(CurrentDb.Properties("Name"), "accde") = 0)
End Function
person BWhite    schedule 15.04.2021