SQL IN语句用于多列Excel

使用VBA,Excel 2007和以下connectionString:

"provider=Microsoft.ACE.OLEDB.12.0;Data Source=myFile.xlsx; Extended Properties=Excel 12.0" 

我试图执行以下查询SELECT [col1], [col2] FROM [Sheet1$] WHERE ([col1], [col2]) IN ((val1, val2), (val3, val4), (val5, val6))

唉,VBA错误指定它不喜欢查询expression式中的逗号。

是否有任何语法更改,我可以执行此查询运行? 或另一个查询会做同样的事情?

以下是每个请求的周边代码

 Sub testQuery() Dim conStr As String, sql As String conStr = "provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\me\Desktop\QueryMe.xlsx; Extended Properties=Excel 12.0" sql = "SELECT col1, col2 FROM [Sheet1$] WHERE (col1, col2) IN (('val1', 'val2'), ('val3', 'val4'), ('val5', 'val6'))" Dim objCon As Object, objRS As Object Set objCon = CreateObject("ADODB.Connection") Set objRS = CreateObject("ADODB.RecordSet") objCon.Open con objRS.Open sql, con objRS.Close objCon.Close End Sub 

你可能会摆脱这个:

 sql = "SELECT col1, col2 FROM [Sheet1$] WHERE col1+col2 IN ('val1val2','val3val4','val5val6')"