使用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
答案 0 :(得分:1)
你可能能够逃脱这个:
sql = "SELECT col1, col2 FROM [Sheet1$] WHERE col1+col2 IN ('val1val2','val3val4','val5val6')"