Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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
通过VBA在SQL查询中使用字符串变量和通配符_Vba_Ms Access - Fatal编程技术网

通过VBA在SQL查询中使用字符串变量和通配符

通过VBA在SQL查询中使用字符串变量和通配符,vba,ms-access,Vba,Ms Access,我想在VBA中运行SQL查询表格名称为t。我使用通配符来查找任何匹配的条目。但是,我得到类型不匹配错误 我尝试过以下方法: Dim j as string Dim SQL1 as string j = "ED" SQL1 = "SELECT t.ID, t.Name " _ &"FROM t " _ & WHERE (((t.Name) Like " * " & '" & j & "' & " * ")); " 有

我想在
VBA
中运行
SQL查询
<代码>表格名称为
t
。我使用通配符来查找任何匹配的条目。但是,我得到
类型不匹配错误

我尝试过以下方法:

Dim j as string
Dim SQL1 as string

j = "ED"

SQL1 = "SELECT t.ID, t.Name " _
       &"FROM t " _
       & WHERE (((t.Name) Like " * " & '" & j & "' & " * ")); "
有人能帮我找出哪里出了错。

试试这个:(星号和撇号的位置很重要!)


如果您要在任何配备VBA语法突出显示的代码编辑器中查看原始代码,您很快就会发现字符串连接中单引号和双引号的不平衡-甚至可以使用此网站上的语法突出显示来演示:

SQL1=“选择t.ID,t.Name”_
&“来自t”_
&式中(((t.Name)如“*”&“&j&“&”&“*”);"
请注意,
WHERE((t.Name)Like
不会显示为字符串,因为该行缺少开头的双引号,并且第一个单引号后面的任何内容都将被视为注释

由于只有变量数据需要串联,因此
SQL1
变量的定义可以大大简化为以下内容:

Dim j as string
Dim SQL1 as string

j = "ED"

SQL1 = "SELECT t.ID, t.Name " _
       &"FROM t " _
       & WHERE (((t.Name) Like " * " & '" & j & "' & " * ")); "
SQL1=“从t中选择t.ID,t.Name,其中t.Name类似于“*”&j&“*”
或者,您也可以通过以下方式使用双引号在生成的串联字符串中生成双引号:

SQL1=“从t中选择t.ID,t.Name,其中t.Name类似于“*”&j&“*”

删除星号周围的空格。最后一行仍然缺少双引号。并且在通配符和变量之间仍然有额外的空格。它不起作用。由@libert编辑答案以修复引号和空格问题。@Lone:您的版本仍然不起作用,再次编辑,现在测试确定