VBA, MS Access MS Access в примерах

Версия MS Access, Разрядность Windows и Версия VBA

Public Function VersionMSA() As Currency
'Возвращает версию MS Access в денежном формате (дробном)
'--------------------------------------------------------------------
'Значения версий:
'   27.01.1999  Office 2000  (9.0)  Последняя версия, совместимая с Windows 95
'   31.05.2001  Office XP   (10.0)  Последняя версия, совместимая с Windows 98
'   21.10.2003  Office 2003 (11.0)
'   30.01.2007  Office 2007 (12.0)  Впервые представлен ленточный интерфейс (Ribbon).
'   12.05.2010  Office 2010 (14.0)
'   26.10.2010  Office 2011 (14.0)  Версия Microsoft Office для macOS. Последняя версия — 14.7.7.
'   29.01.2013  Office 2013 (15.0)
'   23.09.2015  Office 2016 (16.0)
'   24.09.2018  Office 2019 (16.0)
'--------------------------------------------------------------------
    VersionMSA = Val(Application.Version) 'Версия MSA
End Function


Версии MSA 97-2003 и 2007-2010 имеют много отличий - иногда не вредно проверить на чём работает аппликация.

Public Function IsMSAver2007AndUp() As Boolean
Dim iAppVer As Currency
' Проверка версии MS Access
' es - 18.01.2013
' Функция вернёт TRUE если текущая версия MS Access больше 2003
' т.е. есть новые своиства. Конкретно: Ленты (Ribbons)
'--------------------------------------------------------------------
On Error GoTo IsMSAver2007AndUp_Err
    iAppVer = CCur(Mid(Application.Version, 1, 2)) 'Версия MS Access
    
    If iAppVer > 11 Then 'Версия MS Access 2007 и выше (не 2003)
        IsMSAver2007AndUp = True
    End If

IsMSAver2007AndUp_Bye:
    Exit Function

IsMSAver2007AndUp_Err:
    'MsgBox "Error " & Err.Number & vbCrLf & Err.Description & vbCrLf & _
    "in procedure IsMSAver2007AndUp", vbCritical, "Error!"
    IsMSAver2007AndUp = False
    Resume IsMSAver2007AndUp_Bye
End Function


Малый тест системы с выводом в "Immediate Window"

Private Sub SustenTest()
'Малый тест системы с выводом в "Immediate Window" (Ctrl+G):
    #If Win64 Then
       Debug.Print "Разрядность Windows: x64"
    #Else
       Debug.Print "Разрядность Windows: x32"
    #End If
    Debug.Print "Версия MS Access: "; Application.Version
    Debug.Print "Версия VBA: "; VBE.Version
End Sub
Назад ToTop
L.E. 11.08.2021
Рейтинг@Mail.ru