2014-11-06 91 views
0

我有一個用於在SQL服務器中創建和更新表的過程。結果表被鏈接到MS ACCESS FE。它之前是由涉及MS Access中的查詢的宏創建的。我怎樣才能從MS Access FE中調用或執行Proc。訪問SQL Server中的執行過程

我試過這段代碼,但它不會導致任何結果。

Dim cmd As ADODB.Command 
Set cmd = New ADODB.Command 
cmd.ActiveConnection = "Provider=SQLNCLI11.1;Security=SSPI;Initial Catalog=MYDB;Server=MyServer;Integrated Security=SSPI;" 
cmd.CommandType = adCmdStoredProc 
cmd.CommandText = "UPDATE_DATA" 
cmd.Execute 

我是VBA Coding的新手。任何幫助或線索將不勝感激。

回答

1

在您的代碼中,您尚未打開與數據庫的連接。打開一個連接第一像下面的代碼:

Private Const gcConn As String = "Provider=SQLNCLI11.1;Security=SSPI;Initial Catalog=MYDB;Server=MyServer;Integrated Security=SSPI;" 

Sub UpdateProc() 

Dim oDB As ADODB.Connection 
Dim oCM As ADODB.Command 

Set oDB = New ADODB.Connection 
oDB.Open gcConn 
Set oCM = New ADODB.Command 

With oCM 
    .ActiveConnection = oDB 
    .CommandType = adCmdStoredProc 
    .CommandText = "UPDATE_DATA" 
    .Execute 
End With 

oDB.Close 
Set oDB = Nothing 

End Sub 
+0

我得到一個錯誤「在子或功能屬性無效」,但你已經宣佈它的子之外,我不知道爲什麼它會拋出這個錯誤。 – AllPigsREqual 2014-11-06 13:24:35

+0

你會得到什麼錯誤? – Gareth 2014-11-06 13:47:07

+0

Private Private – AllPigsREqual 2014-11-06 13:49:34

0

只需將您的命令保存爲一個傳遞,雖然查詢。因此,您的查詢是:

UPDATE_DATA 

然後這個代碼一行將運行查詢

CurrentDb.QueryDefs("MyPass").Execute 
+0

我得到一個ODBC調用失敗「SQL Server客戶端11.0也是不正確的語法在」Mypass「#102 CurrentDb.QueryDefs(」MyProc「)。執行 – AllPigsREqual 2014-11-10 08:44:26

+0

由於表駐留在SQL Server上,我有建立proc是一個更好的解決方案,然後從Access中執行它,我做了一些返工,我相信通過查詢傳遞給我的工作,因爲結束表結果幾千甚至幾百萬,所以鏈接表做這項工作。 – AllPigsREqual 2014-11-11 22:39:45