字符串变量与通过VBA的SQL查询中的通配符字符用法结合使用

问题描述 投票:-2回答:2

我想在SQL query中运行VBAtable的名字是t。我正在使用通配符来查找任何匹配的条目。但是,我得到了type mismatch error

我试过以下:

Dim j as string
Dim SQL1 as string

j = "ED"

SQL1 = "SELECT t.ID, t.Name " _
       &"FROM t " _
       & WHERE (((t.Name) Like " * " & '" & j & "' & " * ")); "

有人可以帮助我,我在这里犯了一个错误。

access-vba
2个回答
2
投票

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

SQL1 = "SELECT t.ID, t.Name " _
   &"FROM t " _
   & WHERE (((t.Name) Like " * " & '" & j & "' & " * ")); "

请注意,WHERE (((t.Name) Like不会显示为字符串,因为您错过了该行的开头双引号,并且第一个单引号后面的任何内容都被视为注释。

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

SQL1 = "SELECT t.ID, t.Name FROM t WHERE t.Name Like '*" & j & "*'"

或者,您可以按以下方式使用双引号在结果串联字符串中产生双引号:

SQL1 = "SELECT t.ID, t.Name FROM t WHERE t.Name Like ""*" & j & "*"""

0
投票

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

SQL1 = "SELECT t.ID, t.Name " _
& "FROM t " _
& "WHERE t.Name Like '*" & j & "*'"
© www.soinside.com 2019 - 2024. All rights reserved.