尝试为表字段构建表达式以对文本日期进行排序,其中一些表示缺少元素

时间:2017-02-03 11:19:29

标签: date ms-access-2013

嗨,我是一个新手,有一个问题,我一直试图解决几个星期。我有一个从excel导入的表格,日期为文本格式(因为日期可以追溯到1700年代)大多数都采用“mmmyyyy”格式,所以将“1”添加到日期,转换为日期格式和排序相对容易在正确的日期顺序。我遇到的问题是表中的某些日期只是“yyyy”,有些是空的。我找不到一个能够将最后两个转换为例如1月1日yyyy和1月1日1000在同一个表达式中的表达式。这可能,或者我需要在两个查询中执行此操作吗?对不起,如果这个问题非常基础 - 我无法在任何地方找到答案。 TIA

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

Public Function ConvertDate(Byval Expression As Variant) As Date

    Dim Result As Date

    If IsNull(Expression) Then
        Result = DateSerial(1000, 1, 1)
    ElseIf Len(Expression) = 4 Then
        Result = DateSerial(Expression, 1, 1)
    Else
        Result = DateValue(Right(Expression, 4) & "/" & Left(Expression, 3) & "/1")
    End If

    ConvertDate = Result

End Function