国家的问题:如何使用Word VBA中使用Access-VBA定义的函数的Access查询?
我不再认为这是相关的是,我引用的Excel或查询有参数。我认为问题归结为:我如何使用Word VBA中使用Access-VBA定义的函数的Access查询?
我想要做什么is impossible,如何使内联版本的Acos函数与我的查询一起工作,按照shahkalpesh's answer?
我在访问VBA函数:
Public Function Acos(radians As Double) As Double
Acos = WorksheetFunction.Acos(radians)
End Function
WorksheetFunction
从引用的Excel(这是我做的,只是因为它定义了ACOS函数)来了。
我在具有三个参数的查询中使用此函数。然后我在Word VBA中运行此查询,如下所示:
Dim command As New ADODB.command
With command
.ActiveConnection = connection
.CommandText = "MyQueryName"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter(_
"Param1", adDouble, adParamInput, , param1Value)
.Parameters.Append .CreateParameter(_
"Param2", adDouble, adParamInput, , param2Value)
.Parameters.Append .CreateParameter(_
"Param3", adDouble, adParamInput, , param3Value)
End With
Dim records As New ADODB.Recordset
records.Open command, , adOpenKeyset, adLockOptimistic
我在Word VBA中得到一个函数Acos未定义的错误。
想法?
UPDATE
在回应评论:是的,查询工作完美地访问。
而且,只是一张纸条,这是所有Office 2007
更新2
我们从去访问到Word,因为VBA程序已在Word中,但需要做一些数据的运算这在VBA中并不实际。
更改为创建Excel应用程序对象除了显着减慢查询速度之外没有任何影响。
更新3
我在Word和访问引用到Excel。 (如果有更好的方法来得到一个ACOS功能,我当然愿意接受它。)
您是否能够在没有任何错误的情况下在Access中运行Access查询(使用Acos)? – shahkalpesh 2010-03-10 13:35:47
是的。查看更新的问题。 – 2010-03-10 13:44:55
我会期望设置xl = CreateObject(“Excel.Application”) Acos = xl.WorksheetFunction.Acos(0.1) 请注意,如果您输入的弧度值错误,则会出现错误。 – Fionnuala 2010-03-10 13:55:05