如何在 Access 查询表达式中使用 Excel 对象模型?

How to use Excel Object Model in Access Query Expression?

我是 Microsoft Excel 的中高级用户,但对 Microsoft Access(2010 版)非常陌生。我想要做的是在访问查询表达式中使用 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。或者,也许我的语法不正确。

在 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]