2012-06-21 156 views
2

我有一份工作存儲在數據庫中,計劃每天運行。但是它有時需要在任何給定的時間執行這個工作來查看最新的數據(我正在使用SQL Server Management Studio 2008)。Excel VBA - 通過宏在SQL Server內執行作業

作業本身只是從包含實時數據的視圖中獲取數據,並將其放入一個表格中,然後將該表格用作Excel文件的數據源。執行作業會刪除並使用新數據重新創建表格。

在excel(2010)中,我希望有一個「按鈕」按下來執行作業,然後在Excel中的數據選項卡上點擊刷新,然後用新數據更新工作表上的數據。

我的問題是:如何從Excel宏執行這項工作?

回答

0

您創建一個將數據從視圖移動到表的SP。 然後修改它按計劃執行該SP的作業。 然後在Excel宏中,您可以使用該SP來更新數據。

還是看example如何運行從VBScript

0

作業您可以使用SQLDMO.SQLServer執行作業。

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 
+0

這似乎工作,但我運行宏(我通過的憑據是正確的)時出現權限錯誤。在對象sp_start_job上執行權限被拒絕。有什麼想法嗎? –

+0

憑證必須有權啓動作業。任何'sysadmin'帳戶都可以使用。否則,請參閱[這些DBA答案](http://dba.stackexchange.com/questions/10449/grant-permissions-to-run-an-sql-server-job) – Andomar

+0

我試圖使用的帳戶確實是一個系統管理員帳戶。似乎只能在本地PC上工作,當我嘗試從其他任何地方執行該作業時,我只會得到相同的錯誤。我會繼續嘗試...... –