VBA中Where Like子句单引号的作用?Access组合框代码解析
Access 2016组合框自动填充VBA代码中的单引号与
*'作用解析 先看拼接完成后最终生成的SQL语句示例:假设你在组合框中输入了App,最终的strRowSource会是:
SELECT DISTINCT [Purchase ledger].Supplier FROM [Purchase ledger] WHERE Supplier Like 'App*'
第一次拼接的单引号(')的作用
在Access SQL语法中,文本类型的字段值必须用单引号(或双引号)包裹,以此区分文本常量和字段名/关键字。这里的'是用来开启文本匹配的字符串边界——它告诉SQL引擎:接下来的内容是一个文本常量,不是字段名或其他SQL语法元素。
如果没有这个单引号,SQL会把用户输入的内容当成字段名或关键字,直接触发语法错误,因为数据库里不存在对应用户输入内容的字段。
第三次拼接的*'的作用
这部分是两个功能元素的组合:
*:Access SQL中的通配符,表示「任意长度的任意字符」(等同于标准SQL里的%)。在这里用来实现「前缀匹配」——只要供应商名称以用户输入的文本开头,就会被筛选出来。':用来闭合前面开启的字符串边界,告诉SQL引擎文本常量到此结束。
两者结合*',就是把用户输入的文本作为前缀,匹配所有以该前缀开头的供应商名称,最终生成合法的Like匹配条件,实现组合框输入时的自动筛选填充效果。
举个实际场景:当你输入Mic时,生成的条件是Supplier Like 'Mic*',会匹配Microsoft、Microtech、Michaels等所有以Mic开头的供应商选项。
内容的提问来源于stack exchange,提问作者Steve Bennett
相关产品推荐
相关产品推荐

