你好,TW。您知道,在脚本专家中至少有一位会有点守旧,我是说至少。他没有手机,也不使用免下车点餐专用道窗口。他的棒球帽朝前而不是朝后 (!) 戴,他绝对拒绝在线购买书籍。
最后一项尤其骇人听闻:当他想要一本新书时,他就会跑到书店去购买!(确实很难相信还有人坚持那样的生活方式,不是吗?)但那是因为这位脚本专家是运气的坚定信仰者,有意外发现的本领。他喜欢“实体”书店,因为在书架间徜徉时,他会突然发现一本真正的好书,一本他在网上从不会找到的书。(即使所有那些新发明的电脑程序可以提醒你与你最近购买的 30 本书非常类似的一本书刚刚出版,那也不行。)
事实证明,运气在脚本编写时一样有用。当我们收到这封电子邮件时,我们立即转向 Microsoft Access 文档,并认为这会是一个很容易解决的问题。然而,不幸的是,我们没有找到处理版本问题的任何方法。因此,我们先将这个问题放在一边,将其标记为你认为会支持脚本语言但实际不支持的那些问题之一。
那么,就只能靠运气了。当在 Access 文档中查找别的东西时(我们无法找到任何东西;或许我们就不知道如何使用文档),我们遇到一个名为 FileFormat 的属性。猜对了:FileFormat(或者不如说是 Version)就是告诉我们用于创建数据库的 Access 的版本的属性。想知道用于创建数据库 C:/Scripts/Test.mdb 的 Access 的版本吗?下面就是:
Set objAccess = CreateObject("Access.Application")
objAccess.OpenCurrentDatabase "C:/Scripts/Test.mdb"
intFormat = objAccess.CurrentProject.FileFormat
Select Case intFormat
Case 2 Wscript.Echo "Microsoft Access 2"
Case 7 Wscript.Echo "Microsoft Access 95"
Case 8 Wscript.Echo "Microsoft Access 97"
Case 9 Wscript.Echo "Microsoft Access 2000"
Case 10 Wscript.Echo "Microsoft Access 2003"
End Select
|
默认情况下,Access 会显示一个对话框,询问您是否确实要打开数据库。若要忽略该警告,请将宏的安全性级别设置为“低”。 |
我们首先创建 Access.Application 对象的一个实例,然后使用 OpenCurrentDatabase 方法打开文件 C:/Scripts/Test.mdb。(正如你所看到的,该路径是传递到 OpenCurrentDatabase 的唯一参数。)然后,使用下面这行代码获得 FileFormat 属性(从技术上讲,它是 CurrentProject 对象的一个属性)的值,并将该值存储在名为 intFormat 的变量中:
intFormat = objAccess.CurrentProject.FileFormat
此时,剩下的所有事情就是设置一个 Select Case 语句以检查 intFormat 的值,并回显 Microsoft Access 的相应版本。例如,假设 intFormat 等于 9。在该情况下,将触发下面这行代码,“Microsoft Access 2000”将作为创建数据库的应用程序的版本被返回。
Case 9 Wscript.Echo "Microsoft Access 2000"
我们很乐意看到你在线找到一个这样的答案!
哦,对了:如果你正在阅读此专栏,那么我们猜你肯定在线找到了该答案,不是吗?嗯...
顺便说一下,您可能已经注意到,我们启动了一个 Access 实例,但从未明确退出该实例。那是否意味着我们计算机上运行的 Microsoft Access 是唯一的一个副本?不。事实证明,Access 的运行方式与 Word 或 Excel 有些不同:当您在一个脚本内实例化 Access 时,如果该脚本终止,该实例也将终止。如果需要,有一种方法可以解决此问题,但我们不得不另找时间将其作为一个主题进行讲解。