

2、动态读取Access版本号(适用于2003-97版本)。只有实现动态读取Access版本号,才能确保项目发布中根据每台机子所安装的access版本不同,而正确找到键值所在位置。 动态读取access版本号源码:
Dim strRegSec As String '字符串变量,安全设置键值所在注册表路径Dim strVer As String '当前access版号字符串变量Dim objWord As Object 'Word对象变量On Error Resume Next'创建Word对象Set objWord = CreateObject("word.Application.8")'获得当前office版号strVer = objWord.Version'退出Word,并释放内存objWord.QuitSet objWord = Nothing'将注表路径赋值给变量strRegSec = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & _strVer & "\access\Security\Level"'RegWrite 自定义函数,用以写入键值操作'键值1为低,2为中,3为高RegWrite strRegSec, 1
源码说明: 获取ACCESS版本号的通常方法:通过返回access对象,再通过Version属性获取版号,详见源码:
Dim strVer As String '当前access版号字符串变量Dim objaccess As Object 'Word对象变量'返回access对象引用Set objAccess = GetObject (,"access.Application")'获得当前office版号,赋值变量strVer = objaccess.Version
但此法需要一个前提,就是必须先启动ACCESS项目,换句话说也就是ACCESS处于启动状态,可这就回到了前面我们所说“能医不自医”的老问题上了。假如ACCESS设定了最高安全级别,而使ACCESS项目无法正常启动,也就无从通过其 Version 属性获取当前access的版本号。 不过,好在OFFICE家族成员众多,别看access和EXCEL防犯严密,但百密终有一疏,我们可以通过避实就虚的方法,达成曲线救国之目的,也就是通过Word 来获取版本号。见如下源码:
Dim strVer As String '当前access版号字符串变量Dim objWord As Object 'Word对象变量'创建Word对象Set objWord = CreateObject("word.Application.8")'获得当前office版号strVer = objWord.Version
虽然,Word 也提供了宏安全级别设置,但经我测试,无论Word安全级别设置为什么级别,都不会影响它的正常启动,这就为我们获取版本号亮了绿灯,这也是为什么我在代码中用Word而不是access的原因。 3、VB编程启动access项目。本文主要讲的是通过Shell方法启动对象(注意必须引用 SHELL32.DLL 链接库)。源码如下: Shell 方法启动对象源码:
Dim MsShell As New Shell '定义新的Shell类Dim isFile as String '文件所在路径'当前路径及mdb文件名isFile = App.Path & "\项目名称.mdb"'通过Shell打开指定mdb文件MsShell.Open (isFile)
如果我们解决好了上述三个问题,那么我们就完全可以用VB建一个工程并编译EXE,来避开安全级别限制启动access项目就不难了