在Excel / VBA中更改存储过程参数

时间:2016-06-16 15:18:05

标签: sql excel vba excel-vba query-parameters

我通过在VBA中格式化的SQL查询成功将数据导入excel:

   <div class="selected-icon">
   <i class="hummma"></i></div>

我想要让用户输入最新的当周结束日期,这会将@WeekEndDate参数更改为其条目,或者有一个单元格显示最近的周结束日期而无需用户输入(如果可能的话?)所有其他参数保持不变。我是vba的新手,并且没有太多的excel经验,任何帮助都表示赞赏。

**如果需要更多数据,可以编辑问题

2 个答案:

答案 0 :(得分:0)

考虑一下:

Dim NodeId, SubsidiaryCd, WeekEndDate, JobType, ReportLevel

NodeId = 05
SubsidiaryCd = "1"
WeekEndDate = "2016-05-28"
JobType = "12"
ReportLevel = 4

.Open "exec sp_MyProcedure " & _
    "@Node_Id = " & NodeId & "," & _
    "@Subsidiary_Cd = '" & SubsidiaryCd & "'," & _
    "@WeekEndDate = '" & WeekEndDate & "', " & _
    "@JobType = '" & JobType & "'," & _
    "@ReportLevel = " & ReportLevel

这与前一条指令完全相同;您现在只需要将WeekEndDate变量的常量值更改为所需的日期,例如:

WeekEndDate = Format(Date(), "yyyy-mm-dd")

答案 1 :(得分:0)

首先,这取决于您认为某一周的最后一天。对于我的测试,我假设星期六。

其次,我假设&#34;最近一周&#34;,你的意思是最后一个星期(就像我们目前所处的那一周)。

第三,我假设您提供的代码段是您在VBA代码中集成的SQL。

因此,如果您在单元格A1中有=TODAY(),则可以将以下公式放在单元格A2中,然后将您的VBA代码段更改为以下内容:

公式:=A1-WEEKDAY(A1)

.Open "exec sp_MyProcedure @Node_Id = 05,@Subsidiary_Cd = '1',@WeekEndDate = '" & ActiveSheet.Cells(2, 1).Value & "', @JobType = '12',@ReportLevel = 4"

从这里开始,您可以按照相同的想法自定义过程中的所有参数。

相关问题