代替“Format”函数,提取日期-半夜罗
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


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

发表时间:2020/6/7 13:47:15 评论(1) 浏览(4199)  评论 | 加入收藏 | 复制
   
摘 要:代替“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群(群号:198465573)
 
 相关文章
Format集合\Format函数大全\Format整理\acce...  【UMVsoft整理  2009/5/23】
【access入门】从日期时间格式里面提取日期值\返回年月函数\提...  【麥田  2011/3/9】
【Access函数】Format用法详解  【漏蛧尐魚℡  2012/9/13】
【Access自定义函数】不规则提取日期数据的示例  【红尘如烟  2013/2/13】
【Access日期格式示例】用Format函数设置日期显示不同格式...  【麥田  2020/5/16】
【Access Format函数学习】显示当天的开始时间,显示每一...  【麥田  2020/5/18】
常见问答
技术分类
相关资源
文章搜索
关于作者

半夜罗

文章分类

文章存档

友情链接