我使用MS Access 2013和SQL Server 2012.我已將我的SQL Server數據庫連接到MS Access。我通過SQL Server身份驗證連接到SQL Server。我想執行一個存儲過程,並在我的一個表單中輸入一個文本框中的值。我一直在嘗試這麼做,但我在這個網站上沒有發現任何東西適合我。任何人都可以請幫助我,並給我一些關於如何編寫基本VBA代碼來執行過程的提示?請幫忙!!!從MS Access執行SQL Server存儲過程
3
A
回答
3
可能最直接的方法是使用DAO.QueryDef對象創建臨時傳遞查詢。如果您在Access中有現有的鏈接表,則可以使用其.Connect
屬性(ODBC連接信息)。所有你需要做的是設置的QueryDef的.SQL
屬性調用(EXEC)存儲過程,就像這樣:
Option Compare Database
Option Explicit
Private Sub Command2_Click()
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.CreateQueryDef("")
' get .Connect property from existing ODBC linked table
qdf.Connect = cdb.TableDefs("dbo_myContacts").Connect
qdf.sql = "EXEC dbo.addContact N'" & Replace(Me.Text0.Value, "'", "''") & "'"
qdf.ReturnsRecords = False
qdf.Execute dbFailOnError
Set qdf = Nothing
Set cdb = Nothing
End Sub
因此,舉例來說,如果Text0文本框中包含Thompson
那麼的QueryDef將執行
EXEC dbo.addContact N'Thompson'
,如果文本框中包含O'Rourke
那麼的QueryDef將執行
EXEC dbo.addContact N'O''Rourke'
+0
謝謝!它完美的工作!你很棒!週一愉快! – Joanna
1
試用後和錯誤這一個工作對我來說
> Private Sub UpdateItems_Click()
> Dim cdb As DAO.Database, qdf As DAO.QueryDef
> Set cdb = CurrentDb
> Set qdf = cdb.CreateQueryDef("")
> ' get .Connect property from existing ODBC linked table
> qdf.Connect = cdb.TableDefs("dbo_AccesLinkedTable").Connect
> qdf.SQL = "EXEC dbo.YourStoreProcedure"
> qdf.ReturnsRecords = False
> qdf.Execute dbFailOnError
> Set qdf = Nothing
> Set cdb = Nothing
>
> MsgBox "Records Updated!"
>
> End Sub
相關問題
- 1. 從DLL執行SQL Server存儲過程
- 2. 從SQL Server存儲過程執行Oracle存儲過程
- 3. 如何從MS Access VBA中調用SQL Server存儲過程
- 4. SQL Server通過存儲過程將表返回到MS Access
- 5. PHP和SQL Server存儲過程執行
- 6. 執行MS SQL服務器從Access 2003
- 7. 無法執行SQL Server存儲過程
- 8. C#&SQL Server:執行存儲過程
- 9. 在SQL Server中執行存儲過程
- 10. SQL Server複製 - 存儲過程執行
- 11. SQL Server 2005存儲過程執行
- 12. 執行SQL Server存儲過程 -
- 13. SQL Server存儲過程執行差異
- 14. MS SQL Server 2005中的存儲過程
- 15. 從Access執行SQL Server存儲過程時發生轉換錯誤ADODB
- 16. 從SQL Server運行PostgreSQL存儲過程
- 17. SQL Server 2005中:「保護」從FMTONLY模式的存儲過程由MS Access使用
- 18. 執行SQL存儲過程
- 19. 從MS Access移到SQL Server
- 20. 如何使用Ms-Access窗體通過傳遞參數執行Sql server存儲過程
- 21. 如何從Hibernate執行INSERT的SQL Server存儲過程?
- 22. 從vb6在sql-server中執行存儲過程?
- 23. 錯誤執行SQL Server的SSIS包從存儲過程
- 24. 在SQL Server的每一行執行一個存儲過程表
- 25. 在MS SQL Server中存儲查詢與存儲過程
- 26. Bash或PHP腳本在SQL Server上執行存儲過程
- 27. 在MS Access中創建存儲過程?
- 28. 調用MS SQL存儲過程從PHP
- 29. 從Access中的SQL Server存儲過程使用輸出參數
- 30. 從Access 2007創建SQL Server存儲過程 - 更改模式
您是否嘗試使用DAO.QueryDef對象創建傳遞查詢? –
@gord thompson不,我沒有,我不知道該怎麼做... – Joanna