Access Forms VBA: IsLoaded Property Check

Access Forms VBA: Using The IsLoaded Property

Most of the time when developing with MS Access to achieve a really smooth look and feel to your database you will need to eventually code your application and one area where you should start would be with Access forms VBA since end-users will be operating your proud achievements and want to make this a really easy experience for the novice.

With my clients, they like to see something very early on in the development cycle and even though I still need to follow my own planning and designing methodologies, I soon lean towards the front-end namely forms so that my client feels that I’m providing value for money and they can see something really tangible.

If I think of the many times I’ve had to counsel clients during the building phase without seeing any real impact in terms of nice looking screens and other tangible objects – I probably should of added some life coaching time too prior to the project!

Access Forms VBA: IsLoaded Property Wrapped In An If

access forms vba codeOne aspect of Access forms VBA is to test to see if a form is actually open (or loaded) before interacting with it as it will cause errors. One way to validate this is to introduce the IsLoaded property.

Since you want to test it too, you will need to wrap it into a standard logical if test as follows:

If CurrentProject.AllForms("Customers").IsLoaded = True Then
    MsgBox "Great!!!, you're open :) "
    'Add some real meaningful code here...
End If

This can be called from a public sub procedure, function or from an event on a private control like a command button (using the OnClick event).

Just make sure the name of the form (in this example; ‘Customers’) is entered in between the brackets inside double-quotes to respond to a true or false value for the if test to show in this case a simple message box.

Of course you could handle both a true or false response like:

If CurrentProject.AllForms("Customers").IsLoaded = True Then
    MsgBox "Great!!!, you're open :) "
    'Add some real meaningful code here...
Else
    OpenMyForm = MsgBox("Do you want to open?", _
                    vbQuestion + vbYesNo, "This form is not open!")
    If OpenMyForm = vbYes Then
        DoCmd.OpenForm "Customers", acNormal
    End If
End If

If the form ‘Customers’ is not loaded then prompt the user to open it with another if test.

access forms vba - msgbox

One final point to note about checking Access forms VBA IsLoaded property and that it doesn’t work for sub-forms as this is a controlled by the main form itself (as if it’s a control like a TextBox or CommandButton). You will need to create a custom function to trap for this type of instance but that’s for another time!

Have you spent time looking at VBA functions, properties and their value when automating your application? Need any help? My Access online coaching is a good place to start if you have a project you wish to develop further.

This entry was posted in Forms, Modules, MS Access, VBA and tagged , , , , . Bookmark the permalink.

One Response to Access Forms VBA: IsLoaded Property Check

  1. Ben Beitler says:

    One alternative property to consider is you can also test for other Access objects not just Access forms. By changing the ‘AllForms’ to something like ‘AllReports’ means you can now test for a report instead.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>