I go for a 3 letter convention.
str for string (strUsername)
lng for long (lngUserID)
int for integer (intUserID)
bln for boolean (blnIsAdmin)
byt for byte (bytData)
cur for currency
dte for date
etc
I then prefix these with another letter depending on their scope.
m - modular
p - passed param in a sub
g - global
ie in a form/class/module:
Code:
Option Explicit
Private mstrUsername As String
If the varible is global in a module then:
Code:
Option Explicit
Public gstrUsername As String
If the varible is passed to a function then I use:
Code:
Private Sub Woof(ByVal pstrUsername As String)
Dim lngIndex As Long
'code here
End Sub
I find this method VERY handy for debugging code as you can see exactly what the varible is, and it's scope.
If you take a peek at ANY of the projects in my sig you will see this naming convention is use :)