从 MS 访问调用标量 UDF 函数

Calling scalar UDF function from ms access

我正在尝试在 ms 访问中从我的数据库调用标量函数。 这个函数应该 return 一行我的加盐和散列参数。

我最初的尝试是这样的,return编辑了以下错误:"undefined function 'dbo.SaltAndHashPassword' in expression"

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

我尝试了 this question 的解决方案,但出现错误 "object required"

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

谁能帮我解决这个问题?

提前致谢。

在这种情况下,您不能使用 CurrentDb。您必须将 Connection 对象设置为存储 dbo.SaltAndHashPassword 函数的 server/db (您提到的示例使用连接,即使未显示设置它的代码),因为它在 Access 中完全未知。
或者,您可以在 Access 中创建直通查询并使用 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)