我有一个带有备忘录字段的访问表,其中使用表单输入数据,在用户输入新数据之前,以(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)
。我错过了什么?
答案 0 :(得分:0)
要提取您捕获的内容,您希望第1项是索引0而不是1;
del = colMatches.Item(0)
或者避免使用regexp对象的替代方法;
if ucase$(text) like "[A-Z][A-Z][A-Z]-[0-9][0-9]*" then GetLatest = left$(text,6)