Access培訓
網站公告
·Access快速平臺QQ群號:84825014    ·Access快速開發平臺下載地址及教程    ·歡迎添加微信交流賬號:AccessoftChu    ·如何快速搜索本站文章|示例|資料    
您的位置: 首頁 > 技術文章 > Access數據庫-模塊/函數/VBA

代替“Format”函數,提取日期

時 間:2020-06-07 13:47:15
作 者:半夜羅   ID:36948  城市:成都
摘 要:代替“Format”函數,提取日期。
正 文:

      在實際中,有一次,遇到一個Access的不完全安裝版(2007 4N1版),在使用 Format 函數格式化日期時出現 “Format”函數未定義的錯誤,在創建查詢時用“format”函數,出現問題。為了不重新安裝Office,自定義了這個函數,獲取日期類似“2020-12-18星期一”中的日期,一般在做系統是考慮不受控制面板的影響,把“日期字段”設置成文本型為好。這個函數還有一個問題,就是日期的最后兩位,如果輸入時寫入“ "2020\1\345678"”,獲取的結果將會是“2020-01-34”,如果寫成“ "2020\1\3 4567"”,在3的后面有一個空格或是漢字,結果就不會錯誤,請各位老師幫助完善,謝謝。


Function 提取日期(Optional a As String) As String
'適用于 "2020\1\1"+(至少1個空格或1個非數字字符)+其他任意字符
'調用:提取日期(字符串)
'返回:yyyy-mm-dd

    Dim b As String
    Dim c As String
    Dim d As String
    d = Left(a, 4)
    If Not IsNull(a) Then
        If Right(Mid(a, 5, 3), 1) = "\" or Right(Mid(a, 5, 3), 1) = "-" Then
            b = Left(a, 4) & "-0" & Mid(a, 6, 1)
            c = Val(Mid(a, 8, 2))
            If Len(c) = 1 Then
                c = "-0" & Mid(a, 8, 1)
            Else
                c = "-" & Mid(a, 8, 2)
            End If
        Else
            c = Val(Mid(a, 9, 2))
            b = Left(a, 4) & "-" & Mid(a, 6, 2)
            If Len(c) = 1 Then
                c = "-0" & Mid(a, 9, 1)
            ElseIf Len(c) >= 2 Then
                c = "-" & Mid(a, 9, 2)
            End If
        End If
        提取日期 = b & c
    End If
End Function



Access軟件網官方交流QQ群 (群號:252407829)       access源碼網店

最新評論 查看更多評論(1)

2020/6/7 18:55:24小趙
實踐出真知

發表評論您的評論將提升作者分享的動力!快來評論一下吧!

用戶名:
密 碼:
內 容:
 

常見問答

技術分類

相關資源

關于我們 | 服務條款 | 在線投稿 | 友情鏈接 | 網站統計 | 網站幫助