ACC: How to Shrink and Grow a Rectangle in a Report (124642)



The information in this article applies to:

  • Microsoft Access 2.0
  • Microsoft Access for Windows 95 7.0
  • Microsoft Access 97

This article was previously published under Q124642
Moderate: Requires basic macro, coding, and interoperability skills.

SUMMARY

In a report, a text box can expand vertically if you set its CanGrow and CanShrink properties to Yes. Rectangles and lines, however, do not have these properties and cannot expand. To create a rectangle around a control that may grow or shrink, you should use the Line method to draw the rectangle.

This article assumes that you are familiar with Visual Basic for Applications and with creating Microsoft Access applications using the programming tools provided with Microsoft Access. For more information about Visual Basic for Applications, please refer to your version of the "Building Applications with Microsoft Access" manual.

NOTE: Visual Basic for Applications is called Access Basic in Microsoft Access version 2.0. For more information about Access Basic, please refer to the "Building Applications" manual.

MORE INFORMATION

The following example demonstrates how to use the Line method to draw a rectangle around a Memo field of variable size:

  1. Open the sample database Northwind.mdb (or NWIND.MDB in version 2.0).
  2. Create a blank new report based on the Employees table.
  3. Set the Width property of the report to 5 in.
  4. If the field list is not displayed, click the Field List on the View menu to display it.
  5. Drag the Notes field from the field list to the detail section.
  6. Delete the label of the Notes text box by selecting the label and then pressing the DELETE key.
  7. Set the following properties of the Notes text box:

    Name: Notes
    ControlSource: Notes
    CanGrow: Yes
    CanShrink: Yes
    Left: 0.2 in
    Top: 0.166
    Width: 4.6042 in
    Height: 0.166 in

  8. Select the horizontal Detail bar to select the detail section of the report. Set the Height property of the detail section to 0.5 in.
  9. Set the OnPrint property of the detail section to the following event procedure:
    
           Dim X1 As Single, Y1 As Single
           Dim X2 As Single, Y2 As Single
           Dim Offset As Single
           Dim Color As Long
    
           ' Specify unit of measurement for coordinates on a page...
           Me.ScaleMode = 1 ' ...in twips (1440 twips = 1 inch).
    
           ' Define an offset of 1/8 inch from the text box to the rectangle.
           Offset = 1440 / 8
    
           ' X and Y coordinates for the top left corner of the box.
           X1 = Me![Notes].Left - Offset
           Y1 = Me![Notes].Top - Offset
    
           ' X and Y coordinates for the bottom right corner of the box.
           X2 = Me![Notes].Left + Me![Notes].Width + Offset
           Y2 = Me![Notes].Top + Me![Notes].Height + Offset
    
           Me.DrawWidth = 3        ' Width of the line (in pixels).
           Color = RGB(0, 0, 0)    ' Use black line color.
    
           ' Draw the rectangle with the Line method.
           Me.Line (X1, Y1)-(X2, Y2), Color, B
  10. In Microsoft Access 2.0 only; type the following line in the Declarations section of the module:
           Option Explicit
  11. On the Run menu, click Compile Loaded Modules to compile the code.
  12. Close the module, and then preview the report. Note that the Notes field and the box that surrounds it expand and contract together.

REFERENCES

For more information about the Line method, search for Line Method, using the Microsoft Access 97 Help Index.

Modification Type:MinorLast Reviewed:10/11/2006
Keywords:kbhowto kbProgramming kbusage KB124642