Scale Method

Microsoft Access Visual Basic

Scale Method

       

The Scale method defines the coordinate system for a Report object.

expression.Scale(flags, x1, y1, x2, y2)

expression   Required. An expression that returns one of the objects in the Applies To list.

flags  Required Integer.

x1  Required Single. A value for the horizontal coordinate that defines the position of the upper-left corner of the object.

y1  Required Single. A value for the vertical coordinate that defines the position of the upper-left corner of the object.

x2  Required Single. A value for the horizontal coordinate that defines the position of the lower-right corner of the object.

y2  Required Single. A value for the vertical coordinate that defines the position of the lower-right corner of the object.

Remarks

You can use this method only in an event procedure or a macro specified by the OnPrint or OnFormat event property for a report section, or the OnPage event property for a report.

You can use the Scale method to reset the coordinate system to any scale you choose. Using the Scale method with no arguments resets the coordinate system to twips. The Scale method affects the coordinate system for the Print method and the report graphics methods, which include the Circle, Line, and PSet methods.

Example

The following example draws a circle with one scale, then uses the Scale method to change the scale and draw another circle with the new scale.

Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
    DrawCircle
End Sub

Sub DrawCircle()
    Dim sngHCtr As Single, sngVCtr As Single
    Dim sngNewH As Single, sngNewV As Single
    Dim sngRadius As Single

    Me.ScaleMode = 3                     ' Set scale to pixels.
    sngHCtr = Me.ScaleWidth / 2     ' Horizontal center.
    sngVCtr = Me.ScaleHeight / 2     ' Vertical center.
    sngRadius = Me.ScaleHeight / 3     ' Circle radius.
    ' Draw circle.
    Me.Circle (sngHCtr, sngVCtr), sngRadius
    ' New horizontal scale.
    sngNewH = Me.ScaleWidth * 0.9
    ' New vertical scale.
    sngNewV = Me.ScaleHeight * 0.9
    ' Change to new scale.
    Me.Scale(0, 0)-(sngNewH, sngNewV)
    ' Draw circle.
    Me.Circle (sngHCtr + 100, sngVCtr), sngRadius, RGB(0, 256, 0)
End Sub