如何在 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]
我是 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]