如何在自定义函数中引用查询?
How do I reference a Query in a Custom Function?
我正在尝试通过引用 Excel 对象模型来创建自定义函数。通过首先转到 Create/Module/Tools/References/ 并选择 Microsoft Excel 15.0 Object Library (Access 2010),我能够允许 Access 引入 Excel 对象模型。从那里,我使用 Excel 函数 ACOS 和 COS 在 Acces 中创建了一个基本函数。然后我能够在我的查询中毫无问题地 运行 这个函数。这是函数:
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]?
修改您的函数以对其 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;
我正在尝试通过引用 Excel 对象模型来创建自定义函数。通过首先转到 Create/Module/Tools/References/ 并选择 Microsoft Excel 15.0 Object Library (Access 2010),我能够允许 Access 引入 Excel 对象模型。从那里,我使用 Excel 函数 ACOS 和 COS 在 Acces 中创建了一个基本函数。然后我能够在我的查询中毫无问题地 运行 这个函数。这是函数:
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]?
修改您的函数以对其 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;