國家的問題:如何使用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