SQL и Power Pivot: как я могу в своем коде SQL использовать значения ячеек в Excel? - PullRequest
0 голосов
/ 06 марта 2020

Я использую Excel 2016 и Power Pivot. У меня есть код SQL для вычитания некоторых данных из баз данных Oracle. Мой код SQL находится в Power Pivot> Управление> Дизайн> Свойства таблицы . Работает хорошо. Я не понимаю мои настройки, но это работает.

Однако я хочу контролировать свой код из моей книги Excel. Например, предположим, что мой код выглядит так:

select * 
from my_scheme.my_table
where date = '20200101'

По сути, я хочу, чтобы для переменной date было установлено определенное значение ячейки. Как я могу это сделать?

1 Ответ

0 голосов
/ 06 марта 2020

У меня возникла та же проблема, и в конце концов я отказался от PowerPivot / PowerQuery и реализовал динамические c запросы по ADODB.Connection, например:

Sub test()

'Microsoft ActiveX Data Objects x.x library required
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Server_Name = "" ' Enter your server name here
Database_Name = "" ' Enter your database name here
User_ID = "" ' enter your user ID here
Password = "" ' Enter your password here
SQLStr = "" ' Enter your dynamic SQL here

cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
";Uid=" & User_ID & ";Pwd=" & Password & ";"

rs.Open SQLStr, cn
'rownames
fldCount = rs.Fields.Count
For iCol = 1 To fldCount
    ActiveSheet.Cells(1, iCol).Value = rs.Fields(iCol - 1).Name
Next
'body
ActiveSheet.Cells(2, 1).CopyFromRecordset rs

end test
...