Regexp Access VBA - 乘数不起作用

时间:2016-06-23 20:39:18

标签: regex excel vba ms-access

我正在尝试使用VBA DAO.Recordset从Access过滤表。我希望匹配以下模式:\w{3}\d{5}例如:ABC12345

如果我只在VBA代码中测试(在excel中)但是当我执行记录集时没有找到匹配项,这样可以正常工作。简写字符类\w\d和乘数部分{3}将被忽略

简单的查询,例如:select * from table where column like '*C123*'" or "'*[C123]*',工作正常。

我找到了一个解决方案,但它非常难看:  [A-Z][A-Z][A-Z][0-9][0-9][0-9][0-9][0-9]

1 个答案:

答案 0 :(得分:1)

就像'xy'不是(posix)正则表达式一样,它是一个sql语句。 请参阅Access SQL:https://msdn.microsoft.com/en-us/library/bb208897(v=office.12).aspx 或者可能是T-SQL https://msdn.microsoft.com/de-de/library/ms179859(v=sql.120).aspx 但确切的可能性可能取决于连接的数据库,以及哪个引擎正在执行状态管理器。

以下查询可能有效。

select * from table 
where customer like '[a-zA-Z][a-zA-Z][a-zA-Z][0-9][0-9][0-9][0-9][0-9]'

正则表达式在每个实现中都有很大的不同。