Recipe 16.3 Display Smart Tags when Application Starts
16.3.1 Problem
My application makes extensive use of smart tags. Since this is a
global setting, some users may have turned off the display of smart
tags. How can I ensure that smart tags are displayed when my
application starts up?
16.3.2 Solution
The display of smart tags is controlled by a checkbox
in the Tools
tab. These settings apply to Access as a whole, and once changed,
take effect for all running applications. Figure 16-5 shows the dialog box with the display of smart
tags turned on.
Figure 16-5. Setting smart tag viewing options

The best place to set options for your application is in a
startup form, which can run code to ensure that settings are the way
you need them to be. The sample application is configured to use a
form named frmStartup, by setting the Display/Form Start Page
property in the Tools
Figure 16-6.
Figure 16-6. Configuring a startup form

Follow these steps in your startup form to ensure that smart tags are
displayed for your application:
- Create a variable in the declarations section of the form that you
will use to retrieve and store the user's current
settings. Options controlled by checkboxes return either True or
False. However, retrieving and setting options in code requires the
Variant data type, not a Boolean, as you might expect.Option Explicit
Private varSmartTagOn As Variant - In the form's Open event, retrieve the
user's current settings using the GetOption method.
If smart tags are not turned on, then use SetOption to turn them on.
The sample application collects the user's name
using the InputBox function and displays it in a label control that
has the Person Name smart tag attached:Private Sub Form_Open(Cancel As Integer)
' Retrieve user's SmartTag settings
varSmartTagOn = Application.GetOption( _
"Show Smart Tags on Forms")
' Display smart tags if needed
If Not varSmartTagOn Then
SetOption "Show Smart Tags on Forms", True
End If
lblName.Caption = InputBox( _
"Type your name:", "Welcome Message", ")
End Sub - In the form's Close event, reset the
user's smart tag options to their original values:Private Sub Form_Close( )
' Restore user's smart tag option setting
Application.SetOption "Show Smart Tags on Forms", varSmartTagOn
End Sub
16.3.3 Discussion
By saving the smart tag settings in a variable, you
can ensure that your application behaves in a polite way, only
changing the user's global settings that are needed
for your application to function properly. In the sample application,
the code in the Close button event handler closes the form and resets
the user's smart tag options to whatever they were
when the application opened. You could elect to simply hide the form
instead:
Private Sub cmdClose_Click( )
Me.Visible = False
End Sub
The code in the form's Close event will not execute
if the form is hidden and not closed. When the application shuts
down, the form closes and the code in its Close event runs and resets
the user's smart tag options to their original
values.The frmStartup form in the sample database also contains a Toggle
Smart Tags button that toggles the display of the smart tags option.
The ToggleShowSmartTags procedure reverses the current option
settings for displaying smart tags and stores the new setting in the
varSmartTagOn variable:
Private Sub ToggleShowSmartTags( )
' Toggle smart tag settings
varSmartTagOn = Not varSmartTagOn
Application.SetOption "Show Smart Tags on Forms", varSmartTagOn
MsgBox "Application Settings = " & varSmartTagOn, , "Show Smart Tags"
End Sub
You can test the code by opening frmStartup and frmTest side by side.
You can see the smart tags on both forms enabled or disabled as you
click the Toggle Smart Tags button on frmStartup.