Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

返回列表 發(fā)新帖
查看: 3500|回復(fù): 7
打印 上一主題 下一主題

[與其它組件] [求助]access中可有此日期轉(zhuǎn)換函數(shù)?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2007-1-7 15:55:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
如:把1999-11-12轉(zhuǎn)換為一九九九年十一月十二日   的函數(shù),并在sql語(yǔ)言中運(yùn)用?

在線等,謝謝
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2007-1-7 16:48:00 | 只看該作者
沒(méi),可參考金額轉(zhuǎn)大寫的例子
3#
 樓主| 發(fā)表于 2007-1-7 16:51:00 | 只看該作者
可否詳細(xì)說(shuō)明
4#
發(fā)表于 2007-1-7 18:27:00 | 只看該作者
搞定了!支持0001年到9999年。寫的好累啊,不過(guò)以后應(yīng)該也會(huì)用得上,里面是控件操作,樓主自行轉(zhuǎn)換為自定義函數(shù)用

Private Sub 轉(zhuǎn)換_Click()

Dim strNumber, strDate As String

strNumber = "一二三四五六七八九零"

If IsDate(Me.日期) Then

For i = 1 To 4

'如果用year函數(shù),對(duì)于0120之類的年份會(huì)出錯(cuò)
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




[此貼子已經(jīng)被作者于2007-1-7 10:30:40編輯過(guò)]

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)

x
5#
發(fā)表于 2007-1-7 23:16:00 | 只看該作者
真搞不懂在excel里面設(shè)置一下單元格格式的問(wèn)題,到了access里面要用vba才能搞定……



早上沒(méi)睡醒,剛才再研究了一下,發(fā)現(xiàn)原來(lái)還可以簡(jiǎn)單一些,現(xiàn)在應(yīng)該是最精簡(jiǎn)的吧?



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#
發(fā)表于 2007-1-9 04:36:00 | 只看該作者
按日期位數(shù)寫,高興用什么字體就用什么字體

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




網(wǎng)頁(yè)格式不同,"   一二三四五六七八九",第一位數(shù)為空字符,傳上來(lái)了就沒(méi)有,重編輯一次


[此貼子已經(jīng)被作者于2007-1-8 22:14:47編輯過(guò)]

7#
發(fā)表于 2007-1-9 04:47:00 | 只看該作者


[求助]access中可有此日期轉(zhuǎn)換函數(shù)?






[此貼子已經(jīng)被作者于2007-1-9 21:01:17編輯過(guò)]

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒(méi)有帳號(hào)?注冊(cè)

x
8#
發(fā)表于 2007-1-9 06:51:00 | 只看該作者
好像不錯(cuò),明天回公司試試這個(gè)東東,謝謝!
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 08:28 , Processed in 0.095061 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表