【问题标题】:How do I reference a Query in a Custom Function?如何在自定义函数中引用查询?
【发布时间】:2015-02-16 17:25:53
【问题描述】:

我正在尝试通过引用 Excel 对象模型来创建自定义函数。通过首先转到创建/模块/工具/参考/并选择 Microsoft Excel 15.0 对象库 (Access 2010),我能够允许 Access 引入 Excel 对象模型。从那里,我使用 Excel 函数 ACOS 和 COS 在 Acces 中创建了一个基本函数。然后我能够在我的 Query 中毫无问题地运行这个函数。这是函数:

Public Function myTestFunction(x As Double) As Double
        myTestFunction = Excel.WorksheetFunction.Acos(Cos(50))
End Function

这个测试功能对我来说通常没有意义,但它是实现我最终目标的良好第一步。下一步是在函数本身内引用我的查询中的列。基本上,我想用查询列 [LAT] 中的每一行替换 50 值。这是我测试过的:

Public Function myTestFunction(x As Double) As Double     
        myTestFunction = Excel.WorksheetFunction.Acos(Cos([Queries].[Data Query]![LAT]))
End Function

尝试在我的查询中运行此函数后,我收到以下错误:

Run-Time Error 424
Object Required

我的问题是,如何在我的函数中引用查询列 [LAT]?

【问题讨论】:

    标签: ms-access vba ms-access-2010


    【解决方案1】:

    修改您的函数以对其 x 参数进行操作。

    Public Function myTestFunction(x As Double) As Double
        'myTestFunction = Excel.WorksheetFunction.Acos(Cos(50))
        myTestFunction = Excel.WorksheetFunction.Acos(Cos(x))
    End Function
    

    然后您可以在查询中使用该函数并为其提供您的 [LAT] 字段值。

    SELECT dq.[LAT], myTestFunction(dq.[LAT])
    FROM [Data Query] AS dq;
    

    【讨论】:

      猜你喜欢
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      相关资源
      最近更新 更多