访问无法识别正则表达式多行选项

MJH*_*MJH 3 ms-access vba access-vba

我有一个myRegex函数,可从字符串中提取正则表达式。当我运行使用该函数的查询时,在多行上出现以下错误。

找不到方法或数据成员。

这是正则表达式函数:

Function myRegex(ByRef myString As String, ByVal pattern As String) As String
   Dim rgx As New RegExp
    Dim colMatches As MatchCollection
    With rgx
        .pattern = pattern
        .ignoreCase = True
        .Global = False
        .Multiline = False
        Set colMatches = .Execute(myString)
    End With
    If colMatches.Count > 0 Then
        myRegex = colMatches(0).Value
    Else
        myRegex = ""
    End If
End Function 
Run Code Online (Sandbox Code Playgroud)

这是我使用的查询:

SELECT myRegex(phone,"[0-9]+")
FROM table1
Run Code Online (Sandbox Code Playgroud)

我检查了以下参考库:

  • Microsoft VBScript正则表达式1.0
  • Microsoft VBScript正则表达式5.5

tri*_*cot 5

下一行

Dim rgx As New RegExp
Run Code Online (Sandbox Code Playgroud)

...与RegExp定义该Class的第一个库匹配,即

Microsoft VBScript Regular Expressions 1.0
Run Code Online (Sandbox Code Playgroud)

这是不支持该Multiline属性的较旧版本。您需要以下RegExp课程:

Microsoft VBScript Regular Expressions 5.5
Run Code Online (Sandbox Code Playgroud)

所以:

  • 删除带有该较早的1.0参考库的链接,或者
  • RegExp班级限定为VBScript_RegExp_55.RegExp
  • 使用后期绑定(较慢) CreateObject("VBScript.RegExp")