Help - convert numeric to alpha currency
Author Message
Help - convert numeric to alpha currency

I would like to know how to convert alpha to numeric currency.  I found the
following code in the Access network, but don't know enough about Visual Basic
to make it work.  I want a control in a form which is numeric to automatically
set a seperate control to alpha.  Any help with this is greatly appreciated!
Please see the following copywrited code.

'Code Courtesy of
'Joe Foster
'
' Convert a currency value into an (American) English string
Function English (ByVal N As Currency) As String

Const Million = Thousand * Thousand
Const Billion = Thousand * Million
Const Trillion = Thousand * Billion

Dim Frac As Currency: Frac = Abs(N - Fix(N))

Dim AtLeastOne As Integer: AtLeastOne = N >= 1

If (N >= Trillion) Then
Debug.Print N
Buf = Buf & EnglishDigitGroup(Int(N / Trillion)) & " trillion"
N = N - Int(N / Trillion) * Trillion ' Mod overflows

End If

If (N >= Billion) Then
Debug.Print N
Buf = Buf & EnglishDigitGroup(Int(N / Billion)) & " billion"
N = N - Int(N / Billion) * Billion ' Mod still overflows

End If

If (N >= Million) Then
Debug.Print N
Buf = Buf & EnglishDigitGroup(N \ Million) & " million"
N = N Mod Million

End If

If (N >= Thousand) Then
Debug.Print N
Buf = Buf & EnglishDigitGroup(N \ Thousand) & " thousand"
N = N Mod Thousand

End If

Debug.Print N
Buf = Buf & EnglishDigitGroup(N)
End If

Buf = Buf & " exactly"

If AtLeastOne Then Buf = Buf & " and "

Else
If AtLeastOne Then Buf = Buf & " and "

End If

English = Buf
End Function

' Support function to be used only by English()
Private Function EnglishDigitGroup (ByVal N As Integer) As String
Const Hundred = " hundred"
Const One = "one"
Const Two = "two"
Const Three = "three"
Const Four = "four"
Const Five = "five"
Const Six = "six"
Const Seven = "seven"
Const Eight = "eight"
Const Nine = "nine"
Dim Buf As String: Buf = ""
Dim Flag As Integer: Flag = False

'Do hundreds
Select Case (N \ 100)
Case 0: Buf = "":  Flag = False
Case 1: Buf = One & Hundred: Flag = True
Case 2: Buf = Two & Hundred: Flag = True
Case 3: Buf = Three & Hundred: Flag = True
Case 4: Buf = Four & Hundred: Flag = True
Case 5: Buf = Five & Hundred: Flag = True
Case 6: Buf = Six & Hundred: Flag = True
Case 7: Buf = Seven & Hundred: Flag = True
Case 8: Buf = Eight & Hundred: Flag = True
Case 9: Buf = Nine & Hundred: Flag = True
End Select

If (Flag <> False) Then N = N Mod 100
If (N > 0) Then
If (Flag <> False) Then Buf = Buf & " "
Else
EnglishDigitGroup = Buf
Exit Function
End If

'Do tens (except {*filter*}s)
Select Case (N \ 10)
Case 0, 1: Flag = False
Case 2: Buf = Buf & "twenty": Flag = True
Case 3: Buf = Buf & "thirty": Flag = True
Case 4: Buf = Buf & "forty": Flag = True
Case 5: Buf = Buf & "fifty": Flag = True
Case 6: Buf = Buf & "sixty": Flag = True
Case 7: Buf = Buf & "seventy": Flag = True
Case 8: Buf = Buf & "eighty": Flag = True
Case 9: Buf = Buf & "ninety": Flag = True
End Select

If (Flag <> False) Then N = N Mod 10
If (N > 0) Then
If (Flag <> False) Then Buf = Buf & "-"
Else
EnglishDigitGroup = Buf
Exit Function
End If

'Do ones and {*filter*}s
Select Case (N)
Case 0: ' do nothing
Case 1: Buf = Buf & One
Case 2: Buf = Buf & Two
Case 3: Buf = Buf & Three
Case 4: Buf = Buf & Four
Case 5: Buf = Buf & Five
Case 6: Buf = Buf & Six
Case 7: Buf = Buf & Seven
Case 8: Buf = Buf & Eight
Case 9: Buf = Buf & Nine
Case 10: Buf = Buf & "ten"
Case 11: Buf = Buf & "eleven"
Case 12: Buf = Buf & "twelve"
Case 13: Buf = Buf & "thir{*filter*}"
Case 14: Buf = Buf & "four{*filter*}"
Case 15: Buf = Buf & "fif{*filter*}"
Case 16: Buf = Buf & "six{*filter*}"
Case 17: Buf = Buf & "seven{*filter*}"
Case 18: Buf = Buf & "eigh{*filter*}"
Case 19: Buf = Buf & "nine{*filter*}"
End Select

EnglishDigitGroup = Buf
End Function
'************ Code End **********

Sat, 26 Apr 2003 03:00:00 GMT
Help - convert numeric to alpha currency

Create a module and paste the function.

On the After Update event on the numeric text box:

me![AlphaTextBoxName] =  English(Me![NumericTextBoxName])

Quote:
> I would like to know how to convert alpha to numeric currency.  I found
the
> following code in the Access network, but don't know enough about Visual
Basic
> to make it work.  I want a control in a form which is numeric to
automatically
> set a seperate control to alpha.  Any help with this is greatly
appreciated!
> Please see the following copywrited code.

Sat, 26 Apr 2003 03:00:00 GMT

 Page 1 of 1 [ 2 post ]

Relevant Pages