• Access教程
  • sql server教程 MySQL教程 DB2教程 ORACLE教程
    当前位置:教程 > 数据库 > Access教程 > 正文

    用Access2007解决支票打印的日期大写问题

    编辑:教程网 来源:网络 时间:2011年06月19日 16:21

    财务人员都知道,转账支票的出票日期是需要大写的。如果用手写,当然可以直接填写成大写,但如果设计专用软件进行套打,每张支票都在固定位置填写大写会很麻烦,也没有必要。这里仅以 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)”。保存这个查询。
    四、在原表中录入将要打印的支票信息,“出票日期”字段必须录入正确的日期。
    五、运行查询,就会看到有一个大写的日期字段。有了这个结果,无论设计窗体,还是设计报表,都可以自由引用了。


  • 原文来自 教程网 转载请注明:http://www.websmill.com/shujuku/Access/5030.html

  • 上一篇:Access数据库和项目之间的数据类型的比较或映射
  • 下一篇:Access数据库技术(11)