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
模式中具有特殊含义。它用于匹配一系列字符。例如,此模式将匹配 a、b 或 c Termo 中的任何位置.
Termo Like '%[a-c]%'
当你想匹配[
字符本身时,把它自己放在一个范围内。
Termo Like '%[[]%'
在您的代码中,附加这样的参数...
cmd.Parameters.Append cmd.CreateParameter("@Termo", adVarChar, adParamInput, 500, "%[[]%")
我将 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
模式中具有特殊含义。它用于匹配一系列字符。例如,此模式将匹配 a、b 或 c Termo 中的任何位置.
Termo Like '%[a-c]%'
当你想匹配[
字符本身时,把它自己放在一个范围内。
Termo Like '%[[]%'
在您的代码中,附加这样的参数...
cmd.Parameters.Append cmd.CreateParameter("@Termo", adVarChar, adParamInput, 500, "%[[]%")