【问题标题】:Calling scalar UDF function from ms access从 ms 访问调用标量 UDF 函数
【发布时间】:2016-06-06 11:58:16
【问题描述】:

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

我最初的尝试看起来像这样并返回以下错误:“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 的解决方案,但出现“需要对象”错误

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

谁能帮我解决这个问题?

提前致谢。

【问题讨论】:

    标签: sql vba ms-access user-defined-functions


    【解决方案1】:

    在这种情况下,您不能使用CurrentDb。您必须将Connection 对象设置到存储dbo.SaltAndHashPassword 函数的服务器/数据库(您提到的示例使用连接,即使未显示设置它的代码),因为它完全未知访问。
    或者,您可以在 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)
    

    【讨论】:

    • 谢谢,那么我该如何设置连接对象或使用 DAO 创建直通查询?
    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多