语法问题 - 如何在Excel中使用Where子句从工作表中提取

问题描述 投票:-2回答:1

我想出了如何拉动,但无法限制结果。你如何使用where子句。

查看显示我的工作表结构的图片,其中包含一个名为“数据”

请参阅下面的代码来提取数据。

我试图找出用于编写下面的strSQL变量的正确语法。

Excel with Sheet named Data

这是我得到的:!运行时错误'-2147217904(80040e10)':自动化错误

我的sql字符串通过监视窗口显示如下:“SELECT * FROM [Data $ A2:G1000]其中[First] ='JOHN'”

码:

Sub SQL()

    Dim cn As ADODB.Connection
    Dim strFile As String
    Dim strCon As String
    Dim strSQL As String



    Dim rs As ADODB.Recordset

    strFile = ThisWorkbook.FullName
    strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"

    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    cn.Open strCon

    Dim temp As String
    temp = Trim("G" + Trim(Str(1000)))


    strSQL = "SELECT * FROM [Data$A2:" + Trim(temp) + "] where [First]='JOHN'"

    rs.Open strSQL, cn

    MsgBox rs.GetString

    MsgBox "Data Loaded"

End Sub
sql excel vba where adodb
1个回答
-1
投票

大嘘......我需要从A1开始,并在我的范围内包括标题。这不是语法错误,但vBA不会给你非常好的错误消息!

© www.soinside.com 2019 - 2024. All rights reserved.