In procedure naming, the key things to indicate are the procedure's type (function or sub), and its scope (global or modular). These help the programmer determine, at a glance, whether to expect the procedure to return a value, and where to look for the procedure code. The scope portion comes first, then the procedure type prefix, as the following table shows:
Table 8: Naming Procedures
|
Prefix |
Procedure Type |
Example |
|
gf |
Global function |
gfNavigate, gfUpdateControls |
|
gs |
Global sub |
gsPopulateGrid |
|
mf |
Form function |
mfOrdersCalculate |
|
ms |
Form sub |
msCurrentCustomer |
With all of these naming conventions in mind, examine the following code listing. Notice how it illustrates many of the points made in the previous tables: procedure and argument naming, control and object naming, local data variables and so forth.
Listing 2: Applying Naming Conventions in Code
Sub gsPopulateGrid (rgrdCurrent As Grid, rrssCurrent As Snapshot)
On Error GoTo PopulateGrid_Error
Dim liRowCount As Integer
Dim liColCount As Integer
Dim liNumCols As Integer
Dim liCounter As Integer
liRowCount = 0
liNumCols = rrssCurrent.Fields.Count
rgrdCurrent.Cols = liNumCols
'Loop to put field names on column heads
rgrdCurrent.Row = 0
For liColCount = 0 To liNumCols - 1
rgrdCurrent.Col = liColCount
rgrdCurrent.Text = rrssCurrent.Fields(liColCount).Name
Next liColCount
'Loop through rows of snapshot
Do Until rrssCurrent.EOF
liRowCount = liRowCount + 1
rgrdCurrent.Row = liRowCount
'Loop through fields within a row
For liColCount = 0 To liNumCols - 1
rgrdCurrent.Col = liColCount
rgrdCurrent.Text = IIf(IsNull(rrssCurrent.Fields(liColCount)), " ", rrssCurrent.Fields(liColCount))
'rgrdCurrent.ColWidth(liColCount) = rrssCurrent.Fields(liColCount).Size * 150
rgrdCurrent.ColWidth(liColCount) = 1000
Next liColCount
rgrdCurrent.Rows = rgrdCurrent.Rows + 1
rrssCurrent.MoveNext
Loop
Exit Sub
PopulateGrid_Error:
MsgBox "A problem occurred when trying to populate grid. " & Chr(10) & Chr(13) & "Error number: " & CStr(Err) & " -- Error message: " & Error(Err)
rgrdCurrent.Visible = False
On Error GoTo 0
Exit Sub
End Sub