перебрать результаты запроса к базе данных в VBA в Excel - PullRequest
0 голосов
/ 05 августа 2010

Я хотел бы открыть соединение с базой данных SQL, а затем иметь доступ к отдельным ячейкам.У меня есть пример, который использует PivotTableWizard (представлен ниже).Я хотел бы знать способ, который не имеет ничего общего с Pivot Tables - я хотел бы перебирать ячейку за ячейкой.Или этот PivotTableWizard также подходит для этой цели?

В упомянутом примере:

ConnectionString = "Driver={SQL Server};Server=Serversql11;Persist Security Info=False;Integrated Security=SSPI;Database=DB_IC;"

PivotName = "Talks"

QArray = Array(ConnectionString, _
"exec dbo.talksReport '" & CStr(param_date) & "'")

Worksheets("Talks").PivotTableWizard xlExternal, QArray, Worksheets("Talks").Range("A1"), PivotName

TIA / Karol

1 Ответ

0 голосов
/ 05 августа 2010

Если вы хотите перебирать ячейку за ячейкой, вы можете сделать что-то вроде этого:

Sub PrintCellContentsToDebugWindow()
  Dim ws As Worksheet
  Dim rng As Range
  Dim intCounterRow As Integer
  Dim intCounterCol As Integer
  Dim intMaxRow As Integer
  Dim intMaxCol As Integer

  Set ws = ActiveSheet   'OR   '
  'Set ws = ActiveWorkbook.Sheets("Sheet1")   '

  intCounterRow = 1
  intCounterCol = 1
  intMaxRow = 100
  intMaxCol = 25

  Do While intCounterCol <= intMaxCol
    intCounterRow = 1
    Do While intCounterRow <= intMaxRow
      Set rng = ws.Cells(intCounterRow, intCounterCol)
      Debug.Print rng.Address & "    " & rng.Value

      intCounterRow = intCounterRow + 1
    Loop
    intCounterCol = intCounterCol + 1
  Loop

End Sub

Приведенный выше код перебирает первые 100 строк и первые 25 столбцов и печатает адрес ячейки и еезначение в окне отладки в редакторе Visual Basic.

...