我是Microsoft Excel的中等到高级用户,但对Microsoft Access(2010版)来说是非常新的。我想要做的是在Access Query Expression中使用Excel函数。到目前为止,我已经研究了如何通过转到Create / Module / Tools / References然后选择Microsoft Excel 15.0对象库来设置Access以引用Microsoft对象模型。
从那里,我进入我的查询(设计视图)并尝试在“字段”行中添加表达式以计算两点之间的距离。作为测试,我打字:
Distance: Excel.WorksheetFunction.ACOS(50)
我认为这会有效,但是一旦我关闭,保存了查询,并重新查询我收到了以下错误:
Undefined function 'Excel.WorksheetFunction.ACOS' in expression
我做了一些谷歌搜索,以确定为什么这不起作用,但一直没有成功。我不确定Access是否允许您直接从表达式引用Excel。或者,也许我的语法不正确。
答案 0 :(得分:2)
在VBA(在Access中)编写一个简单函数,调用您想要使用的Excel函数:
public function myTestFunction(x as double) as double
myTestFunction = Excel.WorksheetFunction.ACOS(50)
end function
在查询中使用此功能:
只需在列中编写函数,并将包含输入值的列的列名作为参数。如果要为列添加别名,请先写入别名并使用:
;像这样:columnAlias: myTestFunction([OtherColumn])
像往常一样写下你的查询;像SQL中可用的任何其他函数一样使用该函数:
select [OtherColumn], myTestFunction([OtherColumn]) as function
from [YourTable]