我试图在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的解决方案,但我无法让它工作(可能是由于参数错误)
有人可以帮我解决这个问题吗?
提前致谢。
答案 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)