从ms访问调用标量UDF函数

时间:2016-06-06 11:58:16

标签: sql vba user-defined-functions access

我试图在ms访问中从我的数据库中调用标量函数。 这个函数应该返回一行我的盐渍和散列参数。

我的初始attemt看起来像这样,并返回以下错误:"未定义的函数' dbo.SaltAndHashPassword'在表达"

Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT dbo.SaltAndHashPassword('" & Me.txtWW & "','" & Me.salt & "') as salted", dbOpenSnapshot, dbReadOnly)

我尝试了this question的解决方案,但我收到错误"需要对象"

我也尝试过来自this question的解决方案,但我无法让它工作(可能是由于参数错误)

有人可以帮我解决这个问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:3)

在这种情况下,您无法使用CurrentDb。您必须将Connection对象设置为存储dbo.SaltAndHashPassword函数的服务器/ db(您提到的示例使用连接,即使未显示设置它的代码),因为它来自Access完全不知道 或者,您可以在Access中创建passthru查询并使用DAO。我发现它更容易,它避免创建另一个外部引用。

类似的东西:

   Set db = CurrentDb()
   'Create a temporary passthrough query ' 
   Set ptq = db.CreateQueryDef("")
   'set ODBC connection  '
   ptq.Connect = "your connect string"
   ptq.SQL = "SELECT * from your SQL"
   ptq.ReturnsRecords = True
   Set rs = ptq.OpenRecordset(dbOpenSnapshot)
相关问题