Синтаксическая проблема - Как использовать предложение Where в Excel для извлечения из листа - PullRequest
0 голосов
/ 13 февраля 2019

Я разобрался, как тянуть, но с трудом ограничил результат.Как вы тянете с предложением where.

См. Рисунок, который показывает структуру моего листа для вкладки под названием «Данные»

См. Код ниже, чтобы получить данные.

Iя пытаюсь выяснить правильный синтаксис для составления переменной 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

1 Ответ

0 голосов
/ 13 февраля 2019

биг-бу-бу ... Мне нужно было начать с А1 и включить названия в свой диапазон.Это не было синтаксической ошибкой, но vBA не дает вам очень хороших сообщений об ошибках!

...