[AccessD] Function vs Sub (was: Classes and Events - EVENTS NOT REQUIRED)

Gustav Brock Gustav at cactus.dk
Tue Feb 24 03:45:13 CST 2009


Hi Charlotte

Not tidy? In some cases this feature is very useful. 
Here is a simple example of sub returning multiple values:

<code>
Public Sub CompositeRGB( _
  ByVal lngRGB As Long, _
  ByRef intRed As Integer, _
  ByRef intGreen As Integer, _
  ByRef intBlue As Integer)
  
' Calculate discrete RGB colours from composite colour Value.
'
' 1999-08-20. Cactus Data ApS, CPH
  
  If lngRGB < 0 Then
    ' Nothing to do.
    intRed = 0
    intGreen = 0
    intBlue = 0
  Else
    ' Dissolve composite RGB into discrete colours.
    intRed = lngRGB And vbRed
    intGreen = (lngRGB And vbGreen) / &H100
    intBlue = (lngRGB And vbBlue) / &H10000
  End If
  Debug.Print intRed, intGreen, intBlue
End Sub

</code>

The only reason I see to not write a sub when a return value is not needed, is if the (sub)function will be used in a macro as these can't call subfunctions.

/gustav


>>> cfoust at infostatsystems.com 24-02-2009 01:14 >>>
I didn't say functions HAD to return a value, just that you had to have
a function in order to return the value in this case.  Actually, using
ByRef for arguments passed into a sub allows you to get values back too,
but it isn't as tidy.

Charlotte Foust






More information about the AccessD mailing list