VBA 中的 ADO 命令

ADO Command in VBA

我将 Access 2010 与 Excel 2010 一起使用,我想使用 ADO 命令执行查询。请参阅下面我在 Excel VBA:

中所做的
Public Sub test()
On Error GoTo TrataErro

Dim cnn As ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As ADODB.Recordset
Dim Query As String

Set cnn = DBcnn
Set cmd.ActiveConnection = cnn
cmd.CommandType = adCmdText

Query = "SELECT * FROM tblTermos WHERE Termo like @Termo"

cmd.CommandText = Query

cmd.Parameters.Append cmd.CreateParameter("@Termo", adVarChar, adParamInput, 500, "%[%")

Set rst = cmd.Execute

Do Until rst.EOF
    MsgBox rst.Fields("Termo").Value & " " & rst.Fields("id_Grupo").Value
    rst.MoveNext
Loop

DBdisconnect cnn, rst, cmd

Exit Sub

TrataErro:

TrataErro "Erro durante a execução do procedimento ""TrataTermo""."

End Sub

使用上面的查询没有返回任何值,但在我的数据库中有包含“[”、"word1["、“[word2”等的行。但是,当如下重写特定行时,我只得到带有“[”值的行。

cmd.Parameters.Append cmd.CreateParameter("@Termo", adVarChar, adParamInput, 500, "[")

我如何使用 ADO 命令 执行此查询并返回字符串中包含“[”的所有值?

如果我没有很好地解释我的情况,请向我询问更多信息。我是这个社区的新人。

由于您似乎有一个正在寻找的固定参数,您可以通过这样做来消除该参数:

Query = "SELECT * FROM tblTermos WHERE Termo like %[%"

如果您有不同的选择,您可以这样做:

Dim MyParm as string
MyParm = "%[%"
Query = "SELECT * FROM tblTermos WHERE Termo like '" & MyParm & "'"

没有解决您的确切问题,但它们是可能的变通方法。

... returning all values that contain "[" inside the string

[ 字符在 Like 模式中具有特殊含义。它用于匹配一系列字符。例如,此模式将匹配 abc Termo 中的任何位置.

Termo Like '%[a-c]%'

当你想匹配[字符本身时,把它自己放在一个范围内。

Termo Like '%[[]%'

在您的代码中,附加这样的参数...

cmd.Parameters.Append cmd.CreateParameter("@Termo", adVarChar, adParamInput, 500, "%[[]%")