【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-12
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多