Oct 24

ACCESS 數字日期轉換為漢字日期

MS ACCESS

在介绍当前日期转换成中文显示时,首先必须获取当前日期,然后将当前日期中的年、月、日等信息分别转换成中文,并将其显示在窗体中。
本实例主要介绍了函数的定义、调用、返回数据等方法,以及在函数中如何定义变量的类型。我们将在已创建好的“借书信息”窗体中添加一个文本框控件,通过在文本框的获取焦点事件中,输入代码来调用模块中的函数,使其返回显示数据。
在下面的实例中,我们利用Date()(获取当前日期函数)将数据传送到模块定义的函数Date_DZ()数据中。在Date_DZ()函数中,又调用number_DZ()函数并获取汉字数据,将其数据返回到Date_DZ()函数中。在Date_DZ()函数中,将获取到的汉字数据组合好后,将其数据返回到Label17.Text = date_DZ (Date)过程中,并显示到窗体。
    下面以“图书管理系统”数据库为例,介绍实现其功能的具体操作步骤:
   (1)打开“图书管理系统”数据库。
   (2)选择【对象】列表中的【窗体】选项。
   (3)例如选择【借书信息】窗体图标,单击【设计】按钮。

 

    

 

        (8)在【VBA设计器】窗口中,双击【模块】文件夹中的【模块1】选项。并输入date_DZ()函数代码。其date_DZ()函数代码如下:
         Function date_DZ(ByVal myDate As Date) As String
       ‘定义Date_DZ()函数返回数据类型为字符型,并定义myDate变量接收为日期型数据。
        Dim eDate As String
        Dim intY, intM, intD As Integer
        Dim intD2 As Integer
        Dim i As Integer
     ‘定义eDate为字符型,intY、intM、intD、intD2和i为整型变量。
       int Y = Year (myDate)
       intM = Month(myDate)
       intD = Day(myDate)
    ‘分别获取intY、intM、intD为年、月、日信息。
      For i = 1 To Len(intY)
  ‘Len(intY)获取字符串长度(例如“2004”年,长度为4),并执行For…Next循环语句。
        eDate = eDate & number_DZ(Mid(intY, i, 1))
   ‘number_DZ(Mid(intY, i, 1))获取年信息。例如:“2004”年,第一次循环获取2;第二次循环获取0;第三次循环获取0;第四次循环获取4。并分别调用number_DZ()函数,获取中文汉字。其eDate变量将获取的汉字组合到一起,例如eDate=“”(eDate为空)&“二”&“零”&  “零”&“肆”,其结果为eDate=“二零零肆”
       Next
       eDate = eDate & "年"
    ‘将eDate=“二零零肆”&“年”
       eDate = eDate & number_DZ(intM)
    ‘调用number_DZ(intM),并获取月的汉字信息。例如月份为10,将获取“十”。其结果为eDate=“二零零肆年”&“十”
       eDate = eDate & "月"
   ‘结果为eDate=“二零零肆年十”&“月”
      Select Case intD
  ‘求出intD的值。例如日期为15。
      Case 1 To 9, 10, 20, 30
   ‘判断intD是否为1至9、10、20、30中的数字。
        eDate = eDate & number_DZ(intD)
   ‘如果intD在条件数列中,执行其语句。直接调用number_DZ()函数,并将其组合到一起。
     Case 11 To 19
  ‘判断intD是否在11至19之间。
        eDate = eDate & number_DZ(10) & number_DZ(Mid(intD, 2, 1))
   ‘如果intD在11至19之间,将获取“十”汉字,并获取后面一位汉字。例如,日期为15,先获取10后,将提出后一位5并获取5的汉字。其结果为eDate=“二零零肆年十月”&“十”&“五”。
        Case 21 To 29
        eDate = eDate & number_DZ(20) & number_DZ(Mid(intD, 2, 1))
       Case 31
        eDate = eDate & number_DZ(30) & number_DZ(1)
       End Select
      eDate = eDate & "日"
   ‘结果为eDate=“二零零肆年十月十五”&“日”。
       date_DZ = eDate
   ‘将eDate数值赋给date_DZ,返回其值。
   End Function
     Function number_DZ(ByVal i As Integer) As String
   ‘定义number_DZ()函数,接收整型变量i值,并返回字符型数据。
      Select Case i
       Case 0
          number_DZ = "零"
       Case 1
          number_DZ = "一"
      Case 2
           number_DZ = "二"
       Case 3
          number_DZ = "三"
       Case 4
         number_DZ = "四"
      Case 5
          number_DZ = "五"
      Case 6
         number_DZ = "六"
      Case 7
         number_DZ = "七"
      Case 8
          number_DZ = "八"
      Case 9
          number_DZ = "九"
      Case 10
           number_DZ = "十"
      Case 11
          number_DZ = "十一"
      Case 12
          number_DZ = "十二"
      Case 20
           number_DZ = "二十"
       Case 30
          number_DZ = "三十"
       End Select
    End Function

 

       (9)用户编写完代码后,在【VBA设计器】窗口的工具栏中,单击【保存】按钮,关闭【VBA设计器】窗口。

        (10)在返回的Access窗口。用户可以看到在【文本框:Label17】对话框的【获得焦点】文本框中多出一个“〔事件过程〕”,关闭【文本框:Label17】对话框。

          (11)在【借书信息:窗体】设计窗口中,右击标题栏,选择【窗体视图】命令。

          (12)在【借书信息】窗体视图对话框中,用户可以看到已经显示出中文的日期

 

tags:

to "ACCESS 數字日期轉換為漢字日期"

  1. 毛方吉 Says:

    你好!关注!加油!

Leave a Reply