Как поместить результаты запроса в таблицы данных с помощью Excel VBA и ADO? - PullRequest
2 голосов
/ 09 февраля 2012

Я хочу использовать ADO через ODBC для извлечения записей из таблицы базы данных и помещения их в рабочую таблицу Excel. Я могу сделать это. В конечном итоге я хочу, чтобы данные содержались в таблице Excel. Я знаю, как сделать это вручную, выбрав соответствующие ячейки и используя меню Вставка для создания таблицы. Как я могу сделать это в своем коде VBA, чтобы возвращенные результаты запроса были помещены в целевой лист в таблице Excel? Я попытался использовать Макро-рекордер, но сгенерированный код не помог.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2012

Как то так?

Добавьте этот код после импорта данных. Я предполагаю следующее. Пожалуйста, внесите соответствующие изменения.

  • Данные импортируются в ячейку A1 листа 1

  • В строке 1 есть заголовки столбцов

    Sub Sample()
    
        Dim LastRow As Long, LastCol As Long
        Dim ws As Worksheet
        Dim rng As Range
    
        Set ws = Sheets("Sheet1")
    
        LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
        LastCol = ws.Cells(1, Columns.Count).End(xlToLeft).Column
    
        Set rng = Range("$A$1:$" & Split(Cells(, LastCol).Address, "$")(1) & "$" & LastRow)
    
        With ws
            .ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "Table1"
            .ListObjects("Table1").TableStyle = "TableStyleLight2"
        End With
    
    End Sub
    
1 голос
/ 10 февраля 2012

Если вы нажмете кнопку «Из других источников» на вкладке «Данные», вы увидите свой ODBC в списке.Затем вы можете указать таблицу для подключения.После этого у вас будет обновляемая таблица, содержащая ваши данные, другими словами, она объединяет то, что вы уже делаете, с тем, что вы хотите сделать, в один шаг.Исходя из того, что вы сказали в своих комментариях, я думаю, что это правильный путь, но дайте мне знать, если я что-то упустил.

...