Share via


Form Object, Forms Collection Example

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

The following example creates a new form and sets certain properties:

  Sub NewForm()
    Dim frm As Form

    ' Create new form.
    Set frm = CreateForm
    ' Set form properties.
    With frm
        .RecordSource = "Products"
        .Caption = "Products Form"
        .ScrollBars = 0
        .NavigationButtons = True
    End With
    ' Restore form.
    DoCmd.Restore
End Sub

The next example enumerates the Forms collection and prints the name of each form in the Forms collection. It then enumerates the Controls collection of each form and prints the name of each control on the form.

  Sub AllOpenForms()
    Dim frm As Form, ctl As Control

    ' Enumerate Forms collection.
    For Each frm In Forms
        ' Print name of form.
        Debug.Print frm.Name
        ' Enumerate Controls collection of each form.
        For Each ctl In frm.Controls
            ' Print name of each control.
            Debug.Print ">>>"; ctl.Name
        Next ctl
    Next frm
End Sub

The following example uses the Forms collection in an expression. If you have a form called Orders with a control named ShipCountry, you can use the IIf function to return a value based on the current value of the control. If the value of ShipCountry is Null, the expression returns a zero-length string; otherwise, it returns the field's contents. Enter the following expression in the ControlSource property of a text box on a form:

  = IIf(IsNull(Forms!Orders! ShipCountry), "", _
     Forms!Orders!ShipCountry)