简体   繁体   English

SQL 和 Power Pivot:如何在我的 SQL 代码中使用 Excel 中的单元格值?

[英]SQL and Power Pivot: How Can I in my SQL code use cell values in Excel?

I am using Excel 2016 and Power Pivot.我正在使用 Excel 2016 和 Power Pivot。 I have SQL code to subtract some data from an Oracle databases.我有 SQL 代码可以从 Oracle 数据库中减去一些数据。 My SQL code is in Power Pivot > Manage > Design > Table Properties .我的 SQL 代码位于Power Pivot > Manage > Design > Table Properties 中 It is running well.它运行良好。 I don't understand my setup, but it works.我不明白我的设置,但它有效。

However I want to control my code from my Excel workbook.但是我想从我的 Excel 工作簿中控制我的代码。 For instance assume my code is like:例如假设我的代码是这样的:

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

Basically I want the date variable to be set to a certain cell value.基本上我希望将date变量设置为某个单元格值。 How can I do that?我怎样才能做到这一点?

I had the same issue and finally I gave up powerpivot/powerquery stuff and implemented dynamic queries by ADODB.Connection like:我遇到了同样的问题,最后我放弃了 powerpivot/powerquery 的东西,并通过 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM