【问题标题】:How to call SQL Server Stored Procedure from within MS Access VBA如何从 MS Access VBA 中调用 SQL Server 存储过程
【发布时间】:2012-09-06 10:55:13
【问题描述】:

我有一个带有参数但不返回任何内容的存储过程。如何从 MS Access 中调用它?

编辑 - 在 Remou 的帮助下,我已经开始工作了:

Set cnn = New adodb.Connection
cnn.ConnectionString = 
   "driver=SQL Server;server=SERVER\SERVER;database=a_db;Trusted_Connection=Yes"

cnn.Open cnn.ConnectionString

Set cmd = New adodb.Command
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "stprMoveDataSet"

Set param = cmd.CreateParameter
                ("DataSetID", adInteger, adParamInput, 6, stDataSet)
cmd.Parameters.Append param
Set param = cmd.CreateParameter
                ("Destination", adChar, adParamInput, 2, stDestination)
cmd.Parameters.Append param

rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd

【问题讨论】:

  • 您可以针对连接运行,也可以使用直通support.microsoft.com/kb/303968
  • GRRR,这行不通,有什么想法吗?
  • 它告诉我“无法执行选择查询”,这让我很困惑,因为它不是选择查询

标签: sql-server-2008 ms-access stored-procedures ms-access-2010


【解决方案1】:

这里有一个可能会有所帮助的大纲。稍后我可能会回来提供更多详细信息。它不是特定于您的情况,但它可能会让您继续前进:)

Public dbconn As ADODb.Connection
Dim cmd As New ADODb.command
Dim rs As New ADODb.Recordset
Dim param As New ADODb.Parameter

Set dbconn = New ADODb.Connection
dbconn.ConnectionString = GetServerCon

dbconn.Open dbconn.ConnectionString

Set cmd = New ADODb.command
cmd.ActiveConnection = dbconn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "insert_user"

Set param = cmd.CreateParameter(_
   "username", adVarChar, adParamInput, 50, Environ("UserDomain") & "dddddddd\" _
   & Environ("Username"))
cmd.Parameters.Append param

rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockOptimistic
rs.Open cmd

【讨论】:

  • 谢谢 Remou,我会检查并告诉你;)
猜你喜欢
  • 2013-09-18
  • 2015-06-18
  • 2019-03-06
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-06
相关资源
最近更新 更多