MsoFeatureInstall can be one of these MsoFeatureInstall constants. |
msoFeatureInstallNone (Default) An Automation error occurs at run time when uninstalled features are called. |
msoFeatureInstallOnDemand The user is prompted to install new features. |
msoFeatureInstallOnDemandWithUI The feature is installed automatically and a progress meter is displayed during installation. The user isn't prompted to install new features. |
expression.FeatureInstall
expression Required. An expression that returns one of the objects in the Applies To list.
Remarks
When VBA code references an object that is not installed the Microsoft Installer technology will attempt to install the required feature. You use the FeatureInstall property to control what happens when an uninstalled object is referenced. When this property is set to the default, any attempt to use an uninstalled object causes the Installer technology to try to install the requested feature. In some circumstances this may take some time, and the user may believe that the machine has stopped responding to additional commands.
You can set the FeatureInstall property to msoFeatureInstallOnDemandWithUI so users can see that something is happening as the feature is being installed. You can set the FeatureInstall property to msoFeatureInstallNone if you want to trap the error that is returned and display your own dialog box to the user or take some other custom action.
If you have the UserControl property set to False, users will not be prompted to install new features even if the FeatureInstall property is set to msoFeatureInstallOnDemand. If the UserControl property is set to True, an installation progress meter will appear if the FeatureInstall property is set to msoFeatureInstallOnDemand.
Example
This example checks the value of the FeatureInstall property. If the property is set to msoFeatureInstallNone, the code displays a message box that asks the user whether they want to change the property setting. If the user responds "Yes", the property is set to msoFeatureInstallOnDemand. The example uses an object variable named MyOfficeApp that is dimensioned as an application object.
Dim myofficeapp As Access.Application
Set myofficeapp = New Access.Application
With MyOfficeApp
If .FeatureInstall = msoFeatureInstallNone Then
Reply = MsgBox("Uninstalled features for " _
& "this application may " & vbCrLf _
& "cause a run-time error when called." _
& vbCrLf & vbCrLf _
& "Would you like to change this setting" & vbCrLf _
& "to automatically install missing features?", _
vbYesNo, "Feature Install Setting")
If Reply = vbYes Then
.FeatureInstall = msoFeatureInstallOnDemand
End If
End If
End With