Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 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群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助