【发布时间】:2015-06-07 05:27:42
【问题描述】:
我正在尝试调用 SQL Server 过程以通过 VBA 中的函数验证用户。
请看下面的代码:
proc_validate_user 接受 userId 和 password 作为输入参数并返回一个位值 0 或 1
调用这个过程的函数如下:
Public Function ExecUDF(userId As Integer, pwd As String)
Dim cmd As DAO.Command
Dim par As DAO.Parameter
Dim ret As Variant
Set cmd = New DAO.Command
cmd.ActiveConnection = CurrentDb.Connection
cmd.CommandText = "proc_validate_user"
cmd.CommandType = adCmdStoredProc
'Define the input and output variables and append them to the collection
Set par = cmd.CreateParameter("@userID")
cmd.Parameters.Append par
Set par = cmd.CreateParameter("@pwd")
cmd.Parameters.Append par
Set par = cmd.CreateParameter("@isValid", adParamOutput)
cmd.Parameters.Append par
cmd.Parameters("@userID") = userId
cmd.Parameters("@pwd") = pwd
cmd.Execute
'and then assign the stored procedure return value to the access variable
ret = cmd.Parameters("@isValid").Value
End Function
我收到一个编译错误,提示“用户定义类型未在“Dim cmd As DAO.Command”中定义
【问题讨论】:
-
什么是
DAO? ||你有一个错字,没有关闭你的功能。 -
DAO 代表数据访问对象,是 ADO 的子集。它非常常用,我在代码的其他部分使用它,它工作得很好。例如:DAO.Recordset
-
是的...但它是否包含/在范围内?该错误消息似乎表明编译器不知道
DAO.Command是什么。 -
DAO.Recordset 工作正常,当我查看如何从 VB 调用 sql server 过程的帮助时,我开始了解这些命令 ADODB.command 和 CreateParameter 函数等。我尝试编写带有 ADODB 和 DAO 的代码都给了我同样的错误。
-
两者都给出了
DAO.Command类型的相同错误未定义?
标签: vba ms-access stored-procedures sql-server-2008-r2 ms-access-2010