如何在Access Query Expression中使用Excel对象模型?

时间:2015-02-13 22:03:54

标签: ms-access ms-access-2010

我是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。或者,也许我的语法不正确。

1 个答案:

答案 0 :(得分:2)

在VBA(在Access中)编写一个简单函数,调用您想要使用的Excel函数:

public function myTestFunction(x as double) as double
    myTestFunction = Excel.WorksheetFunction.ACOS(50)
end function

在查询中使用此功能:

  • 如果您使用查询设计网格:

    只需在列中编写函数,并将包含输入值的列的列名作为参数。如果要为列添加别名,请先写入别名并使用:;像这样:columnAlias: myTestFunction([OtherColumn])

  • 如果您使用SQL编写查询:

    像往常一样写下你的查询;像SQL中可用的任何其他函数一样使用该函数:

select [OtherColumn], myTestFunction([OtherColumn]) as function
from  [YourTable]