我使用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