Sql Access中带有参数的存储过程
我有一个在Access中运行的存储过程Sql Access中带有参数的存储过程,sql,vba,stored-procedures,sql-server-2012,ms-access-2013,Sql,Vba,Stored Procedures,Sql Server 2012,Ms Access 2013,我有一个在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
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调用中即可。尝试以下方法:
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
我从vba中的警报框获取输入变量的转到方法是
InputBox()
。e、 g:
Public myStr as String
public sub GetInputStr()
myStr = InputBox("Enter your variable here")
end sub
然后,您应该能够在模块内的其他sub中使用myStr。希望这有帮助