您当时的方位:主页 >  > Access

用Access2007处理支票打印的日期大写问题

2014-09-10  www.codeforacause.net

  财务人员都知道,转账支票的出票日期是需求大写的。假如用手写,当然能够直接填写成大写,但假如规划专用软件进行套打,每张支票都在固定方位填写大写会很费事,也没有必要。这儿仅以access2007规划为例,给这方面的爱好者供给一个思路。

  一、先规划一个Access2007表,参加转账支票或许需求的字段,比方付款人称号、付款人账号、收款人称号、付款金额、出票日期等等。其间的“出票日期”设成“日期”类型,默认值能够设成“date()”(即当天日期)。表规划好后命名保存备用。

  二、新建模块,并输入以下内容

  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

  三、以第一步建的表为根底新建一个查询,参加必要的字段。另在一个空白字段写表达式:“大写: Udate([出票日期],0)”。保存这个查询。

  四、在原表中录入即将打印的支票信息,“出票日期”字段有必要录入正确的日期。

  五、运转查询,就会看到有一个大写的日期字段。有了这个成果,不管规划窗体,仍是规划报表,都能够自在引用了。