Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 从Excel中解析Access表上LIKE子句中的正则表达式_Regex_Vba_Ado_Adodb - Fatal编程技术网

Regex 从Excel中解析Access表上LIKE子句中的正则表达式

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”函数,整个过程都失败了 非常感谢您

我有一个老式的Access数据库(.mdb)。我有一个启用宏的Excel电子表格,通过ADODB连接与该数据库交互

我想在“like”子句中使用正则表达式对数据库执行查询;比如:

(我想匹配“SM39_002xx”)

“从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可以找不到。请参见下面的示例