0

我有一个带有备注字段的访问表,其中使用表单输入数据,在用户输入新数据之前,以 (Apr-01) 的形式添加日期。保存后,新数据将添加到顶部。然后我有一个如下函数进入该字段并获取最新数据,因此它将位于顶部:

示例数据

Apr-01 - new data
Mar-09 - old data
etc

获取最新信息的功能:

Public Function GetLatest(text As String) As String
    If (IsNull(text)) Then
        GetLatest = ""
    Else
        Set objRegExpr = New regexp

        objRegExpr.Pattern = "([A-Za-z]{3}-[0-9]{2})"
        objRegExpr.Global = True
        objRegExpr.IgnoreCase = True

        Set colMatches = objRegExpr.Execute(text)

        del = colMatches(1)
        txt = Split(text, del)
        GetLatest = txt(0)
    End If
End Function

在即时窗口中运行这个函数,我得到了预期的结果,但是当我在查询中运行相同的函数时,我invalid procedure or argument指向这条线del = colMatches(1)。我错过了什么?

4

1 回答 1

0

要提取您捕获的内容,您需要索引 0 而不是 1 的第一项;

del = colMatches.Item(0)

或者避免使用正则表达式对象的替代方法;

if ucase$(text) like "[A-Z][A-Z][A-Z]-[0-9][0-9]*" then GetLatest = left$(text,6)
于 2013-04-16T16:02:49.780 回答