Office中国论坛/Access中国论坛
标题: [求助]access中可有此日期转换函数? [打印本页]
作者: wd0001 时间: 2007-1-7 15:55
标题: [求助]access中可有此日期转换函数?
如:把1999-11-12转换为一九九九年十一月十二日 的函数,并在sql语言中运用?
在线等,谢谢
作者: rjacky 时间: 2007-1-7 16:48
没,可参考金额转大写的例子
作者: wd0001 时间: 2007-1-7 16:51
可否详细说明
作者: rjacky 时间: 2007-1-7 18:27
搞定了!支持0001年到9999年。写的好累啊,不过以后应该也会用得上,里面是控件操作,楼主自行转换为自定义函数用
Private Sub 转换_Click()
Dim strNumber, strDate As String
strNumber = "一二三四五六七八九零"
If IsDate(Me.日期) Then
For i = 1 To 4
'如果用year函数,对于0120之类的年份会出错
strDate = strDate & Mid(strNumber, IIf(Mid(Format(Me.日期, "yyyy"), i, 1) = 0, 10, Mid(Format(Me.日期, "yyyy"), i, 1)), 1)
Next i
strDate = strDate & "年"
Select Case Month(Me.日期)
Case Is < 10
strDate = strDate & Mid(strNumber, Month(Me.日期), 1)
Case Is = 10
strDate = strDate & "十"
Case Is < 20
strDate = strDate & "十" & Mid(strNumber, Month(Me.日期) - 10, 1)
End Select
strDate = strDate & "月"
Select Case Day(Me.日期)
Case Is < 10
strDate = strDate & Mid(strNumber, Day(Me.日期), 1)
Case Is = 10
strDate = strDate & "十"
Case Is < 20
strDate = strDate & "十" & Mid(strNumber, Day(Me.日期) - 10, 1)
Case Is = 20
strDate = strDate & "二十"
Case Is < 30
strDate = strDate & "二十" & Mid(strNumber, Day(Me.日期) - 20, 1)
Case Is = 30
strDate = strDate & "三十"
Case Is < 40
strDate = strDate & "三十" & Mid(strNumber, Day(Me.日期) - 30, 1)
End Select
strDate = strDate & "日"
Me.输出 = strDate
Else
MsgBox "靠!有这样的日期吗?!"
End If
End Sub
[attach]22500[/attach]
[此贴子已经被作者于2007-1-7 10:30:40编辑过]
作者: rjacky 时间: 2007-1-7 23:16
真搞不懂在excel里面设置一下单元格格式的问题,到了access里面要用vba才能搞定……
早上没睡醒,刚才再研究了一下,发现原来还可以简单一些,现在应该是最精简的吧?
Dim strDate As String
If IsDate(Me.日期) Then
For i = 1 To 4
strDate = strDate & Mid("零一二三四五六七八九", Mid(Format(Me.日期, "yyyy"), i, 1) + 1, 1)
Next i
strDate = strDate & "年" & MonthName(Month(Me.日期)) & Choose(Day(Me.日期) \ 10 + 1, "", "十", "二十", "三十") & Choose(Right(Day(Me.日期), 1) + 1, "", "一", "二", "三", "四", "五", "六", "七", "八", "九") & "日"
Me.输出 = strDate
Else
MsgBox "靠!有这样的日期吗?!"
End If
作者: zxzx2733 时间: 2007-1-9 04:36
按日期位数写,高兴用什么字体就用什么字体
Option Compare Database
Option Explicit
Public Function Mdate(Oldate) As String
On Error GoTo ErrA
Dim dat As Variant, datA, datAA, datAB, datAC, datAD, datBA, datBB, datBC, datCA, datCB, datCC As String
dat = CDate(Oldate)
datA = Format(dat, "yyyymmdd")
datAA = Mid("○一二三四五六七八九", Mid(datA, 1, 1) + 1, 1)
datAB = Mid("○一二三四五六七八九", Mid(datA, 2, 1) + 1, 1)
datAC = Mid("○一二三四五六七八九", Mid(datA, 3, 1) + 1, 1)
datAD = Mid("○一二三四五六七八九", Mid(datA, 4, 1) + 1, 1): Rem 年
datBA = Mid(datA, 5, 1)
If datBA = 0 Then
datBB = ""
ElseIf datBA = 1 Then
datBB = "十"
End If
datBC = Mid(" 一二三四五六七八九", Mid(datA, 6, 1) + 1, 1): Rem 月
datCA = Mid(datA, 7, 1)
If datCA = 0 Then
datCB = ""
ElseIf datCA = 1 Then
datCB = "十"
ElseIf datCA = 2 Then
datCB = "廿"
ElseIf datCA = 3 Then
datCB = "三十"
End If
datCC = Mid(" 一二三四五六七八九", Mid(datA, 8, 1) + 1, 1): Rem 日
Mdate = datAA & datAB & datAC & datAD & "年" & datBB & datBC & "月" & datCB & datCC & "日"
Mdate = Replace(Mdate, " ", "")
ErrA:
Exit Function
End Function
网页格式不同," 一二三四五六七八九",第一位数为空字符,传上来了就没有,重编辑一次
[此贴子已经被作者于2007-1-8 22:14:47编辑过]
作者: zxzx2733 时间: 2007-1-9 04:47
[求助]access中可有此日期转换函数?
[attach]22533[/attach]
[此贴子已经被作者于2007-1-9 21:01:17编辑过]
作者: 飘流物语 时间: 2007-1-9 06:51
好像不错,明天回公司试试这个东东,谢谢!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |