我们来一步步解析,在分析之前先学一个基础:
http://www.foxtable.com/webhelp/topics/0221.htm,了解一下&符号的用法
1、首先原表达式字符串为"[产品] = 'PD01'",使用代码定义一个变量赋值就是这样的
dim filter as string = "[产品] = 'PD01'"
测试结果为:

此主题相关图片如下:1.png

注意,用双引号引用表示一个字符串,但是这个字符串本身是不包含双引号的,双引号是语法的一部分,而不是字符串的一部分,看输出的结果就明白了,输出结果是没有双引号的。
2、现在表达式是一个字符串(2个双引号之间的内容),我们把表达式拆分为3个字符串,PD01提取出来独立为一个字符串,PD01前的内容是另外一个字符串,PD01后的内容是第3个字符串,就是这样:
dim a as string = "[产品] = '"
dim b as string = "PD01"
dim c as string = "'"
上面红色的内容才是字符串,不包含双引号本身
3、然后使用&符合连接这3个字符串,就是这样的:
dim filter as string = a & b & c
可以看到测试结果和第一步的结果是一样的

此主题相关图片如下:1.png

4、然后其实只有b变量的PD01这个内容是变化的,比如可能是PD02、PD03,而a变量和c变量的内容是不变的,所以实际我们只需要把PD01改为使用变量替换,其它内容保留为字符串形式即可,也就是我们需要的结果是:
dim b as string = "PD01"
dim filter as string = "
[产品] = '" & b & "
'"

此主题相关图片如下:1.png

然后我们需查询其它产品时,只需要改一下变量的值,比如PD02,然后结果是

此主题相关图片如下:2.png
