Private Type GUIDs
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Declare Function CLSIDFromProgID Lib "ole32" (ByVal lpszProgID As Long, rclsid As GUIDs) As Long
Public Function IsOLEObjectInstalled(Name As String) As Boolean
Dim mGuid As GUIDs
On Error Resume Next
IsOLEObjectInstalled = CLSIDFromProgID(StrPtr(Name), mGuid) = 0
End Function
Public Sub Auto_Open()
Dim msg As String
msg = "Microsoft.ACE.OLEDB.12.0 = " & IsOLEObjectInstalled("Microsoft.ACE.OLEDB.12.0") & vbCrLf
msg = msg & "Microsoft.Jet.OLEDB.4.0 = " & IsOLEObjectInstalled("Microsoft.Jet.OLEDB.4.0") & vbCrLf
MsgBox msg
End Sub
@saboteur_kiev: да, у нас весь софт лицензионный. Меня, как программиста, это вообще не волнует, т.к. закупкой лицензий занимается совершенно другой отдел.