【发布时间】:2021-12-21 22:10:14
【问题描述】:
我在 Excel 中有一个表,我想用它来通过 SQL 获取一些度量值。
这是我的代码的第一部分,可以正常工作:
Option Explicit
Sub MySQL()
Dim cn As Object, rs As Object, output As String, sql As String
Set cn = CreateObject("ADODB.Connection")
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _
"Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
.Open
End With
现在我可以获取具有特定条件的条目数量,例如:
sql = "SELECT COUNT(ID) FROM [Data$] WHERE [Type] = ""myType"" and [Status] = ""myStatus"""
Set rs = cn.Execute(sql)
MsgBox (rs(0))
现在我想使用 CONTAINS 条件,但这不起作用:
sql = "SELECT COUNT(ID) FROM [Data$] WHERE CONTAINS([Type], ""T"")"
Set rs = cn.Execute(sql)
MsgBox (rs(0))
【问题讨论】:
-
您尝试过使用 LIKE 吗?
-
这返回一个 0 但至少没有错误:sql = "SELECT COUNT(ID) FROM [Data$] WHERE [Type] LIKE ""T"""我还有语法问题吗?
-
您可能需要通配符,例如
%T% -
wildcard=% 是我需要的提示。非常感谢!