使用Excel值修改SQL查询

我正在使用Excel 2013从SQL Server 2012数据库获取数据,我使用SQL Query成功获取数据,但是现在我希望基于Month和Year的查询是dynamic的。 如何使用单元格值(电子表格单元格)作为此类查询的参数? 我使用这个查询:

SELECT [Class_02] AS [MS Part Number] ,[701].[dbo].[ItemClasses].[Description] AS [Item Name] ,ROUND([701].[dbo].[frhsrg].[esr_aantal]/3, 0) AS [Aantal] ,[701].[dbo].[ItemAccounts].[SlsPkgsPerPurPkg] AS [Prijs] ,SUM(DISTINCT [701].[dbo].[frhsrg].[esr_aantal]) * [701].[dbo].[ItemAccounts].[SlsPkgsPerPurPkg] as Totaalprijs FROM [701].[dbo].[Items] WHERE DATEPART(YEAR, fakdat) = '2013' AND DATEPART(QUARTER, fakdat) = '1' AND [701].[dbo].[frhsrg].[docnumber] LIKE '%kwartaal%' 

我在Excel (月和年)中有两个值,比如2013年3月,然后SQL中的DATEPART语句必须以此为基础。 我使用Excel 2013加载项PowerPivot来填充Excel工作表和SQL查询输出。 SQL查询需要如何做到这一点?

在前进中,非常感谢!

…我把你的查询保存为一个string在你的Excel VBAmacros(我假设这是查询运行的地方),简单地写它如下:

 WHERE DATEPART(YEAR, fakdat) = <<YEAR>> AND DATEPART(QUARTER, fakdat) = <<MONTH>> 

基本上有<<YEAR>><<MONTH>>作为占位符,那么你可以使用看起来像这样的Replacefunction:

 Replace strSQL, "<<YEAR>>", Range("A1").Text 

其中strSQL将是SQLstring