Access爱好者--
所属分类: OLE自动化 作者: 共享 更新日期:2003-10-14 8:38:11 阅读次数:390

如何从 Microsoft Access 内调用 Excel 函数


这篇文章中的信息适用于:
Microsoft Access 2000

本文的发布号曾为 CHS198571
本文适用于 Microsoft Access 数据库 (.mdb) 和 Microsoft Access 项目 (.adp)。

高级用户:要求具有高级编程、互操作性和多用户技巧。


概要
本文说明如何使用“自动化”功能从 Microsoft Access 内调用 Microsoft Excel 函数。
更多信息
Microsoft Excel 有一些 Microsoft Access 没有的函数,例如,统计函数和加载项函数。通过使用“自动化”功能,可以在 Access 中使用这些 Excel 函数。为此,先请设置对 Microsoft Excel 对象库的引用。

要设置对 Microsoft Excel 对象库的引用,请执行下列步骤:
在 Access 中,按 ALT+F11 切换到 Visual Basic 编辑器。
在工具菜单上,单击引用。
在引用框中,单击 Microsoft Excel 9.0 Object Library 复选框,然后单击确定。
设置引用后,可以使用“对象浏览器”查看所有 Microsoft Excel 的对象、属性和方法,包括通过 Application 对象可用的函数。

以下两个示例程序中使用了 Microsoft Excel 的统计函数。

备注:通过“自动化”功能打开 Excel 之后,Excel 不自动关闭。以下示例程序中使用 Quit 方法关闭 Excel。有关退出 Excel 的其它信息,请参见 Microsoft Knowledge Base 中的以下文章:
210129 ACC2000:通过“自动化”功能运行的应用程序总是无法关闭

示例 1


以下函数使用“自动化”功能调用 Excel 的 Median () 函数。数字组的一半在中值之下,而另一半则在中值之上。 Sub xlMedian()
Dim objExcel As Excel.Application
Set objExcel = CreateObject("Excel.Application")
MsgBox objExcel.Application.Median(1, 2, 5, 8, 12, 13)
objExcel.Quit
Set objExcel = Nothing
End Sub
该函数在消息框中显示 6.5。
示例 2


以下函数使用“自动化”功能调用 Excel 的 ChiInv () 函数,该函数返回卡方分布的倒数或单尾概率。 Sub xlChiInv()
Dim objExcel As Excel.Application
Set objExcel = CreateObject("Excel.Application")
MsgBox objExcel.Application.ChiInv(0.05, 10)
objExcel.Quit
Set objExcel = Nothing
End Sub
该函数在消息框中显示 18.3070290368475。

通过直接调用 Excel 引用可以简化代码: Sub xlChiInv()
MsgBox Excel.Application.ChiInv(0.05, 10)
End Sub
备注: 使用该语法时,Excel 将保留在内存中,直到重置代码或关闭数据库。
使用加载项


Excel 也使用加载项。这些程序包含自定义函数和命令。如果需要使用包含在加载项程序中的函数,请先打开加载项。以下示例使用 LCM (Least Common Multiple) 函数: Sub xlAddin()
Dim objExcel As Excel.Application
Set objExcel = CreateObject("Excel.Application")

Opens the add-in, which is in the Analysis folder of the
Excel Library Directory.
objExcel.workbooks.Open (objExcel.Application.librarypath & _
"\Analysis\atpvbaen.xla")

Runs the AutoOpen macro in the add-in
objExcel.workbooks("atpvbaen.xla").RunAutoMacros (xlAutoOpen)
MsgBox objExcel.Application.Run("atpvbaen.xla!lcm", 5, 2)
objExcel.Quit
Set objExcel = Nothing
End Sub
该函数在消息框中显示 10。



--------------------------------------------------------------------------------
相关文章

将 Microsoft Access 用作 Automation 服务器 2003-10-14 8:37:19


系统优化
控件使用
数据库设计
数据库连接
系统安全
OLE自动化
常见问题
实用代码
属性详解
网络相关
实用API
经验分享
精选教程
字符处理
ADP相关



文章搜索



制作维护:李寻欢     Mail:[email protected]

关于本站 -- 网站服务 -- 版权条款 -- 联系方法 -- 网站帮助
Access爱好者版权所有 Copyright 2003-2005 All Rights Reserved 未经许可不得盗链