paste the code into a module ,
then the afterupdate event is:
usage:
Code:
Private Sub Amount_AfterUpdate()
Amount_in_Words = SpellNum(Amount)
End Sub
paste into module'
Code:
'NO COMMAS
Public Function SpellNum(Optional ByVal psNum)
Dim vTxt, vNum, vWord, vN1, vN2
Dim X As Integer, l As Integer, i As Integer
Dim vCents
If IsMissing(psNum) Then
SpellNum = ""
Exit Function
End If
If InStr(psNum, ".") > 0 Then
i = InStr(psNum, ".")
vCents = Mid(psNum, i + 1)
psNum = Left(psNum, i - 1)
End If
If Len(psNum) = 1 And Val(psNum) = 0 Then
SpellNum = "ZERO "
Exit Function
End If
If Val(psNum) = 0 Then
i = -1
Else
i = Len(psNum)
End If
Select Case i
Case -1
SpellNum = ""
Exit Function
Case 1
X = 0
Select Case Val(psNum)
Case 0
vTxt = ""
Case 1
vTxt = "ONE "
Case 2
vTxt = "TWO "
Case 3
vTxt = "THREE "
Case 4
vTxt = "FOUR "
Case 5
vTxt = "FIVE "
Case 6
vTxt = "SIX "
Case 7
vTxt = "SEVEN "
Case 8
vTxt = "EIGHT "
Case 9
vTxt = "NINE "
End Select
Case 2
X = 0
Select Case Val(psNum)
Case 10
vTxt = "TEN "
Case 11
vTxt = "ELEVEN "
Case 12
vTxt = "TWELVE "
Case 13
vTxt = "THIRTEEN "
Case 14
vTxt = "FORTEEN "
Case 15
vTxt = "FIFTEEN "
Case 16
vTxt = "SIXTEEN "
Case 17
vTxt = "SEVENTEEN "
Case 18
vTxt = "EIGHTEEN "
Case 19
vTxt = "NINETEEN "
Case Else
Select Case Val(Left(psNum, 1))
Case 2
vTxt = "TWENTY "
Case 3
vTxt = "THIRTY "
Case 4
vTxt = "FORTY "
Case 5
vTxt = "FIFTY "
Case 6
vTxt = "SIXTY "
Case 7
vTxt = "SEVENTY "
Case 8
vTxt = "EIGHTY "
Case 9
vTxt = "NINETY "
End Select
X = Val(Right(psNum, 1))
vTxt = vTxt & SpellNum(X)
X = 0
End Select
Case 3
X = 2
vTxt = psNum
vWord = "HUNDRED "
Case 4, 5, 6
X = 3
vWord = "THOUSAND "
Case 7, 8, 9
X = 6
vWord = "MILLION "
Case 10, 11, 12
X = 9
vWord = "BILLION "
End Select
If X > 0 Then
l = Len(psNum) - X
vN1 = Left(psNum, l)
vN2 = Mid(psNum, l + 1)
vTxt = SpellNum(vN1) & vWord
If vTxt = "ZERO HUNDRED " Then vTxt = ""
vTxt = vTxt & SpellNum(vN2)
End If
If Len(vCents) > 0 Then
SpellNum = vTxt & " and " & vCents & " cents"
Else
SpellNum = vTxt
End If
End Function