ADO:使用指定的数据库自动填充过程参数

时间:2018-11-06 18:46:15

标签: vba ms-access ado

当我们在VBA中使用ADO在没有数据库名称的情况下调用DBMS存储过程时:

Dim cmd As New ADODB.Command
cmd.ActiveConnection = CurrentProject.Connection
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "SomeProc"
cmd.Parameters(1) = "someArg"
cmd.Execute

ADO自动填充cmd.Parameters集合,可以使用了。我们可以在VBA编辑器的“本地”窗口中看到它。但是,如果使用数据库名称指定了过程名称,并且/或者对于MS SQL Server,则指定了架构名称(DbName.dbo.SomeProc),则不会填写参数,并且会出现以下错误:

  

运行时错误'-2147217904(80040e10)':

     

过程或函数''需要未提供的参数'@ '。

该过程可以位于当前数据库中(连接字符串的Initial Catalog中),在第一种情况下,使用全名的调用将失败,但简短的则不会。我们可以手动将参数附加到集合中,但是第一种情况呢?

指定数据库名称后,是否可以使ADO准备Parameter对象?

0 个答案:

没有答案