从 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)
我正在尝试在 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)