多列Excel的SQL IN语句

时间:2015-05-21 17:18:39

标签: mysql excel vba excel-vba

使用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错误指定它不喜欢查询表达式中的逗号。

我可以执行任何语法更改来运行此查询吗? 或者另一个会做同样事情的查询?

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

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

1 个答案:

答案 0 :(得分:1)

你可能能够逃脱这个:

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