Regex 从Excel中解析Access表上LIKE子句中的正则表达式
我有一个老式的Access数据库(.mdb)。我有一个启用宏的Excel电子表格,通过ADODB连接与该数据库交互 我想在“like”子句中使用正则表达式对数据库执行查询;比如: (我想匹配“SM39_002xx”)Regex 从Excel中解析Access表上LIKE子句中的正则表达式,regex,vba,ado,adodb,Regex,Vba,Ado,Adodb,我有一个老式的Access数据库(.mdb)。我有一个启用宏的Excel电子表格,通过ADODB连接与该数据库交互 我想在“like”子句中使用正则表达式对数据库执行查询;比如: (我想匹配“SM39_002xx”) “从tbl1939中选择Serial,其中Serial-like RegExpMatch(“^SM+[0-9]+[\][0-9]+[a-z]?”,[Serial])” 它在Access中工作得很好,但是从Excel中找不到“RegExpMatch”函数,整个过程都失败了 非常感谢您
“从tbl1939中选择Serial,其中Serial-like RegExpMatch(“^SM+[0-9]+[\][0-9]+[a-z]?”,[Serial])”
它在Access中工作得很好,但是从Excel中找不到“RegExpMatch”函数,整个过程都失败了
非常感谢您的帮助。用户定义函数(UDF)仅在MS Access中可用,我相当肯定您在RegExpMatch中拥有这些函数。在大多数情况下,除非没有其他选择,否则应该避免创建它们。例如,以下查询将在MS Access外部运行,并近似于您所需的内容:
SELECT t.Field1
FROM ATable t
WHERE t.Field1 Like "SM[0-9][0-9][_][0-9][0-9][0-9][a-z]?"
我在MSDN(wow)中找不到
RegExpMatch
,但是您确定正则表达式应该用双引号(“)而不是单引号(”)引用吗?您想匹配SM39_002xx
但输入数据看起来如何?如果将其创建为一个查询并从Access中的查询中选择,会发生什么情况?是否工作?如果您在Excel中从该查询中选择,会发生什么情况?是否工作?您会得到什么确切的错误?我相信RegExpMatch
是Access中的自定义项,因此Excel可以找不到。请参见下面的示例