设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3270|回复: 7
打印 上一主题 下一主题

[与其它组件] [求助]access中可有此日期转换函数?

[复制链接]
跳转到指定楼层
1#
发表于 2007-1-7 15:55:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如:把1999-11-12转换为一九九九年十一月十二日   的函数,并在sql语言中运用?

在线等,谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-1-7 16:48:00 | 只看该作者
没,可参考金额转大写的例子
3#
 楼主| 发表于 2007-1-7 16:51:00 | 只看该作者
可否详细说明
4#
发表于 2007-1-7 18:27:00 | 只看该作者
搞定了!支持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




[此贴子已经被作者于2007-1-7 10:30:40编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
5#
发表于 2007-1-7 23:16:00 | 只看该作者
真搞不懂在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
6#
发表于 2007-1-9 04:36:00 | 只看该作者
按日期位数写,高兴用什么字体就用什么字体

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编辑过]

7#
发表于 2007-1-9 04:47:00 | 只看该作者


[求助]access中可有此日期转换函数?






[此贴子已经被作者于2007-1-9 21:01:17编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
发表于 2007-1-9 06:51:00 | 只看该作者
好像不错,明天回公司试试这个东东,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 20:56 , Processed in 0.104920 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表