About referring to an object or its properties in expressions

Microsoft Office Access 2003

The following identifier refers to the Visible property of a control:

Reports![Invoice]![ShipName].Visible

The full identifier for an object or property shows the relationship between items in the identifier. In this identifier:

  • Reports refers to the collection of open reports in the database. Microsoft Access automatically creates Forms and Reports collections for each database. The Forms collection is made up of all open forms, while the Reports collection is made up of all open reports.
  • [Invoice] refers to the Invoice report in the Reports collection.
  • [ShipName] refers to the ShipName control on the Invoice report.
  • Visible refers to the Visible property of the ShipName control.

It's a good idea to refer to an object or property using its full identifier. In some cases, a full identifier is required. For example, to refer to a control on a form or report that isn't the form or report with the focus, you must type its full identifier. The following expression displays the sum of the values in the Subtotal and Freight controls on the Orders form in a control on a different form:

= Forms![Orders]![Subtotal] + Forms![Orders]![Freight]

ShowRefer to an object without a full identifier

In some circumstances, you can refer to a control or its properties without specifying a full identifier:

  • If you're referring to a control on the current form or report, you don't have to specify the form or report identifier. For example, to display the sum of the values in the Subtotal and Freight controls in a different control on the same form, set the ControlSource property of the control to:

    = [Subtotal] + [Freight]

  • If you're referring to a control on a subform or subreport, you don't have to specify the full identifier for the form or report using the Form or Report property. For example, you can use the following identifier to refer to the Quantity control on the Orders Subform subform:

    Forms![Orders]![Orders Subform]![Quantity]

    The full identifier for the Quantity control would be:

    Forms![Orders]![Orders Subform].Form![Quantity]

  • In a macro or action argument, you don't have to specify the identifier for the form or report from which the macro is run. For example, if you set an event property on a form to the name of a macro, you can refer to controls on the form in the macro's Condition column or action arguments without specifying the form's identifier.
  • In a Microsoft Visual Basic for Applications procedure, you can use the Me keyword rather than the full identifier to refer to a control on the current form or report. For example, to assign the sum of the values in the Subtotal and Freight controls on a form to the variable OrderTotal in one of the form's event procedures, add the following statement to the event procedure:
    OrderTotal = Me![Subtotal] + Me![Freight]
    						

Notes

  • When you run a macro or Microsoft Visual Basic for Applications code containing an expression that refers to a form or report, the form or report must be open.
  • In a Microsoft Visual Basic procedure, you can refer to an object by enclosing its name in parentheses and double (") quotation marks instead of using the ! operator. The parentheses syntax is required if you want to use a variable in an identifier. For example, the following identifiers are equivalent:
    Forms![Orders]![OrderDate]
    Forms("Orders")("OrderDate")