佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1401|回复: 3

Convert dollar amount (numeric) to word(Access)

[复制链接]
发表于 14-4-2008 07:57 PM | 显示全部楼层 |阅读模式
我想在access里面以下的效果
就是说我只要key in 123然后它自己会转去one hundred and twenty three

我找到了以下的code但是我不知道要如何把它应用在access里面。。。有谁可以帮帮我吗

-------------------------------------------------------
Function NumberToWords(InputNumber As Double, Optional NeedCents As Boolean = False) As Variant

    Dim varWords        As Variant
    Dim Billions        As Double
    Dim Millions        As Double
    Dim Thousands       As Double
    Dim Hundreds        As Double
    Dim Cents           As Integer
    Dim varNumber       As Variant
   
    Dim OneBillion      As Double
   
    If Not IsNumeric(InputNumber) Then
        NumberToWords = Null
        Exit Function
    End If
     
    If InputNumber = 0 Then
        NumberToWords = "Zero "
        Exit Function
    End If

    Cents = (InputNumber - Int(InputNumber)) * 100
      
    InputNumber = Int(InputNumber)
   
    OneBillion = 1000000000

    Billions = Int(InputNumber / OneBillion)
   
    Millions = InputNumber - (Billions * OneBillion)
    Millions = Int(Millions / 1000000)
   
    Thousands = InputNumber - (Billions * OneBillion) - (Millions * 1000000)
    Thousands = Int(Thousands / 1000)
   
    Hundreds = InputNumber - (Billions * OneBillion) - (Millions * 1000000) - (Thousands * 1000)
   
    varWords = SmallNumberToWords(Billions) + "Billion, " & _
               SmallNumberToWords(Millions) + "Million, " & _
               SmallNumberToWords(Thousands) + "Thousand, " & _
               SmallNumberToWords(Hundreds)
               
    If NeedCents Then
        varWords = varWords & "And " & IIf(Cents < 10, "0" & Cents, Cents) & "/100"
    End If
   
    NumberToWords = varWords
   
End Function

Private Function SmallNumberToWords(SmallNumber As Double) As Variant

    Dim Hundreds        As Integer
    Dim Tens            As Integer
    Dim Units           As Integer
    Dim HundredsWords   As Variant
    Dim TensWords       As Variant
    Dim UnitsWords      As Variant
   
    Hundreds = Int(SmallNumber / 100)
    Tens = SmallNumber - (Hundreds * 100)   ' Part 1 - Get rid of hundreds
    Tens = Int(Tens / 10) * 10              ' Part 2 - Truncate Units
    Units = (SmallNumber - (Hundreds * 100)) - Tens
   
    If Tens <= 19 Then
        Tens = Tens + Units
        Units = 0
    End If
   
    Select Case Hundreds
        Case 1: HundredsWords = "One Hundred "
        Case 2: HundredsWords = "Two Hundred "
        Case 3: HundredsWords = "Three Hundred "
        Case 4: HundredsWords = "Four Hundred "
        Case 5: HundredsWords = "Five Hundred "
        Case 6: HundredsWords = "Six Hundred "
        Case 7: HundredsWords = "Seven Hundred "
        Case 8: HundredsWords = "Eight Hundred "
        Case 9: HundredsWords = "Nine Hundred "
        Case Else: HundredsWords = Null
    End Select
   
    Select Case Tens
        Case 1: TensWords = "One "
        Case 2: TensWords = "Two "
        Case 3: TensWords = "Three "
        Case 4: TensWords = "Four "
        Case 5: TensWords = "Five "
        Case 6: TensWords = "Six "
        Case 7: TensWords = "Seven "
        Case 8: TensWords = "Eight "
        Case 9: TensWords = "Nine "
        Case 10: TensWords = "Ten "
        Case 11: TensWords = "Eleven "
        Case 12: TensWords = "Twelve "
        Case 13: TensWords = "Thirteen "
        Case 14: TensWords = "Fourteen "
        Case 15: TensWords = "Fifteen "
        Case 16: TensWords = "Sixteen "
        Case 17: TensWords = "Seventeen "
        Case 18: TensWords = "Eighteen "
        Case 19: TensWords = "Nineteen "
        Case 20: TensWords = "Twenty "
        Case 30: TensWords = "Thirty "
        Case 40: TensWords = "Forty "
        Case 50: TensWords = "Fifty "
        Case 60: TensWords = "Sixty "
        Case 70: TensWords = "Seventy "
        Case 80: TensWords = "Eighty "
        Case 90: TensWords = "Ninety "
        Case Else: TensWords = Null
    End Select
   
    Select Case Units
        Case 1: UnitsWords = "One "
        Case 2: UnitsWords = "Two "
        Case 3: UnitsWords = "Three "
        Case 4: UnitsWords = "Four "
        Case 5: UnitsWords = "Five "
        Case 6: UnitsWords = "Six "
        Case 7: UnitsWords = "Seven "
        Case 8: UnitsWords = "Eight "
        Case 9: UnitsWords = "Nine "
        Case Else: UnitsWords = Null
    End Select
   
    'Debug.Print "Hundreds " & Hundreds; HundredsWords
    'Debug.Print "Tens " & Tens; TensWords
    'Debug.Print "Ones " & Units; UnitsWords
   
    SmallNumberToWords = HundredsWords & TensWords & UnitsWords
        
End Function
回复

使用道具 举报


ADVERTISEMENT

发表于 14-4-2008 08:09 PM | 显示全部楼层
......

眼花缭乱。。。
回复

使用道具 举报

发表于 18-4-2008 12:33 AM | 显示全部楼层
我做过得coding。。非常想念

这是连接
http://chinese4.cari.com.my/myforum/viewthread.php?tid=638468&highlight=

然后慢慢的理解loop。我做的coding还没有那么得成熟

加油

[ 本帖最后由 程家伟 于 18-4-2008 12:39 AM 编辑 ]
回复

使用道具 举报

发表于 18-4-2008 12:44 AM | 显示全部楼层
你得coding好像把那个textbox"NumberToWords"的even换去不是focus.

然后output textbox "SmallNumberToWords"就可以知道了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 1-1-2026 05:33 PM , Processed in 0.135790 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表