Excel VBA - 通过宏在SQL Server中执行作业

时间:2012-06-21 11:37:14

标签: sql-server excel-vba vba excel

我有一个存储在数据库上的作业,计划每天运行。但有时需要在任何给定时间执行此作业以查看最新数据(我使用的是SQL Server Management Studio 2008)。

作业本身只是从包含实时数据的视图中获取数据,然后将其放入一个表中,然后将其用作excel文件的数据源。执行作业将丢弃并使用新数据重新创建表。

在excel(2010)中,我希望有一个“按钮”,按下该按钮将执行作业,然后在Excel中的数据选项卡上点击刷新,然后将使用新数据更新工作表上的数据。

我的问题是:如何从excel宏执行此作业?

3 个答案:

答案 0 :(得分:4)

Private Sub CmdRunJob_Click()
   Dim con As Object
   Set con = CreateObject("ADODB.Connection")
   con.Open = "DRIVER={SQL Server};SERVER=YourServer;" & _
       "USER=YourUser;PASSWORD=YourPassword;"
   con.Execute "exec msdb.dbo.sp_start_job 'YourJob'"
End Sub

答案 1 :(得分:0)

您创建一个将数据从视图移动到表的SP。 然后按计划修改它执行该SP的作业。 然后在Excel宏中,您可以使用该SP来更新数据。

或者参见example如何从VBScript运行作业

答案 2 :(得分:0)

您可以使用SQLDMO.SQLServer来执行您的工作。