|< Day Day Up >|
An object's properties describe the current state of the object. Any class can have zero or more properties. When you instantiate an object from the class, each of these properties has a value. You can read the current value of each property from VBA code, or assign new values to properties from VBA code. Here's an example of reading current values of a form object's properties:
Sub ReadProperties() ' Display some properties of an object Dim frm As New Form_Projects frm.Visible = True Debug.Print frm.Caption Debug.Print frm.RecordSelectors End Sub
When you run this procedure from the Immediate window, you get output that looks this:
To get the value of a property from an object, you refer to it by using the object name and the property name, with a dot in between:
You can assign this value to a variable, or (as in the example you just saw) print it, or use it as an argument to a procedure; in fact, you can use a property value anywhere that you can use a simple variable of the same type. In this case, the caption of the form is "Projects" and the form's record selectors (the vertical bar at the left side of the form) are turned on.
To change the value of a property, you assign a value to the property using very similar syntax:
Sub WriteProperties() ' Change some properties of an object Dim frm As New Form_Projects frm.Visible = True frm.Caption = "Project details" frm.RecordSelectors = False MsgBox "Click OK to continue" End Sub
Running this procedure results in a display like that shown in Figure 8.2. Note that the form's caption is set to the value specified in the code, and the record selectors have been hidden by the VBA code. (Compare Figures 8.1 and 8.2 and you'll see that the small black triangle at the upper-left portion of the form is missing in Figure 8.2 that's the record selector.)
Figure 8.2. Changing property values with VBA.
If you run the WriteProperties procedure and then re-open the form from the regular Access user interface, you'll discover that the property changes made through VBA don't persist. By default, any changes you make in VBA are thrown away by Access when you're done with the object. You can override this default by calling the form's Save method; you learn about methods in the next section of this chapter.
Any object can have three types of properties:
Most properties are read/write. Read-only properties are often used for properties that can't change after you create an object; for example, a Form object has a Name property that returns the name of the class. Write-only properties are rare. You might run across a class with a password property that is write-only, enabling you to set a new password but not to read an existing password.
|< Day Day Up >|