【问题标题】:Stored procedure with parameters in AccessAccess中带参数的存储过程
【发布时间】:2015-07-31 20:34:12
【问题描述】:
我有这个在 Access 中运行的存储过程。
Private Sub ReviewTrns_Click()
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.CreateQueryDef("")
qdf.Connect = cdb.TableDefs("dbo_FreeShipping").Connect
qdf.SQL = "EXEC dbo.UpdateTrns"
qdf.ReturnsRecords = False
qdf.Execute dbFailOnError
Set qdf = Nothing
Set cdb = Nothing
MsgBox "Records Updated!"
End Sub
完美运行。 dbo_FreeShipping 是链接表,dbo.UpdateTrns 是存储过程。我还想为参数@variable1添加输入值
可以通过消息框输入来完成吗?
【问题讨论】:
标签:
sql
vba
stored-procedures
sql-server-2012
ms-access-2013
【解决方案1】:
我从 vba 中的警告框中获取输入变量的 goto 方法是 InputBox()。例如:
Public myStr as String
public sub GetInputStr()
myStr = InputBox("Enter your variable here")
end sub
你应该能够在你的模块中的其他 subs 中使用 myStr。希望这会有所帮助!
【解决方案2】:
只需将用户输入的结果连接到您的 sql 调用。尝试类似:
Private Sub ReviewTrns_Click()
Dim input As String
input = InputBox("Enter variable1") //get the user input
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.CreateQueryDef("")
qdf.Connect = cdb.TableDefs("dbo_FreeShipping").Connect
qdf.SQL = "EXEC dbo.UpdateTrns @variable1='" & input & "'" // concatenate parameter
qdf.ReturnsRecords = False
qdf.Execute dbFailOnError
Set qdf = Nothing
Set cdb = Nothing
MsgBox "Records Updated!"
End Sub