我正在尝试通过引用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
这个测试功能对我来说通常毫无意义,但却是实现我最终目标的良好的第一步。下一步是在函数本身的Query中引用一列。基本上,我想在查询列[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]?
答案 0 :(得分:0)
修改您的函数以对其 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;