用Access2007解決支票打印的日期大寫問題

字號:


    財務(wù)人員都知道,轉(zhuǎn)賬支票的出票日期是需要大寫的。如果用手寫,當(dāng)然可以直接填寫成大寫,但如果設(shè)計專用軟件進行套打,每張支票都在固定位置填寫大寫會很麻煩,也沒有必要。這里僅以access2007設(shè)計為例,給這方面的愛好者提供一個思路。
    一、先設(shè)計一個Access2007表,加入轉(zhuǎn)賬支票可能需要的字段,比如付款人名稱、付款人賬號、收款人名稱、付款金額、出票日期等等。其中的“出票日期”設(shè)成“日期”類型,默認(rèn)值可以設(shè)成“date()”(即當(dāng)天日期)。表設(shè)計好后命名保存?zhèn)溆谩?BR>    二、新建模塊,并輸入以下內(nèi)容
    Public Function Udate(mDATE As Date, mYMD As Integer) As String
    '用法 Udate(#1/2/2005#, i)
    'i=1  貳零零伍
    'i=2 零壹
    'i=3 零貳
    'i=0 貳零零伍年零壹月零貳日
    Dim i As Integer, iD As Integer
    Dim strDT(2) As String, strS As String
    Dim strD(0 To 9) As String * 1
    strD(0) = "零"
    strD(1) = "壹"
    strD(2) = "貳"
    strD(3) = "叁"
    strD(4) = "肆"
    strD(5) = "伍"
    strD(6) = "陸"
    strD(7) = "柒"
    strD(8) = "捌"
    strD(9) = "玖"
    For i = mYMD + (mYMD <> 0) To mYMD + (mYMD <> 0) - (mYMD = 0) * 2
    If i = 0 Then
    iD = Year(mDATE)
    strDT(i) = strD(iD 1000) & strD((iD 100) Mod 10) & strD((iD 10) Mod 10) & strD(iD Mod 10)
    Else
    If i = 1 Then iD = Month(mDATE) Else iD = Day(mDATE)
    If iD > 9 Then strS = "拾" Else strS = ""
    strDT(i) = strD(iD 10) & strS & strD(iD Mod 10)
    If iD > 9 And iD Mod 10 = 0 Then strDT(i) = "零" & Left$(strDT(i), 2)
    End If
    Next
    Select Case mYMD
    Case 0
    Udate = strDT(0) & "年" & strDT(1) & "月" & strDT(2) & "日"
    Case Else
    Udate = strDT(mYMD - 1)
    End Select
    End Function
    三、以第一步建的表為基礎(chǔ)新建一個查詢,加入必要的字段。另在一個空白字段寫表達(dá)式:“大寫: Udate([出票日期],0)”。保存這個查詢。
    四、在原表中錄入將要打印的支票信息,“出票日期”字段必須錄入正確的日期。
    五、運行查詢,就會看到有一個大寫的日期字段。有了這個結(jié)果,無論設(shè)計窗體,還是設(shè)計報表,都可以自由引用了。