Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

关于用代码设置Access选项的不完全总结

时 间:2019-01-07 15:53:46
作 者:西出阳关无故人   ID:8236  城市:安顺
摘 要:用vba代码设置Access选项的几种方法。
正 文:

——适用于Access2007,其他版本未测试。

       在Access程序编制完毕后,要分发给用户使用。基于用户可能对Access不熟悉、或其他(如简单安全措施)原因,编程人要对Access的选项进行设置。当然,用vbaAccess选项自动设置是最简便的了。

       鉴于我的程序基本上是单位局域网内内部使用,数据也不是绝密的,分发给用户的程序不需要编译,可以随时随地检查出错的信息、更改程序,只考虑不让用户看到或打开链接表、vba以及不让用户创建查询(算是简易的安全措施吧)。所以,就从access选项、自定义功能区等方面进行主动防御,在自定义功能区中设计了一个“设计”开关,这个开关负责用vba代码对access选项进行设置、用代码对RibbonXml进行修改。

        为了后学兄弟们不再自行摸索,总结如下,不足之处敬请指正。

一、Application.SetOption方法

        Application.SetOption 方法,是微软提供给我们的工具之一,可以对大部分的Access选项进行设置,

        表达式.SetOption(OptionName, Setting)

        其中OptionName参数表示选项中的设置项,Setting表示设置的值。设置项参数字符串的列表,请参阅Access帮助的“从 Visual Basic 中设置选项”章节。

        实例:

        Application.SetOption "Show Status Bar", True  '显示状态巴。

        又如:

        Application.SetOption "show system objects", True  '显示显示系统对象。

        或:

        Application.SetOption "显示系统对象", True  '显示显示系统对象。

        以上二者等价,即"show system objects"="显示系统对象"

二、database.Properties属性方法

        在实际应用中,database.Properties属性方法可以作为Application.SetOption方法的补充,例如:

        CurrentDb.Properties("UseMDIMode") = 0 '设置文档窗口选项为“重叠窗口”,0=重叠窗口;1=选项卡式文档

        以下是不能使用Application.SetOption方法进行设置的选项。

属性                   中文意义    值类型

StartUpShowDBWindow 显示导航窗格    true/false

AllowFullMenus        允许全部菜单    true/false

AllowShortcutMenus       允许默认快捷菜单    true/false

AllowBuiltInToolbars        允许内置工具栏    true/false

UseMDIMode    文档窗口选项    0/1:重叠窗口/选项卡式文档

...

        实际上,以上两种方法仍然不能覆盖所有的选项设置,需要使用Database.CreateProperty方法

三、Database.CreateProperty方法

        实际上这个方法是方法二的补充,Access帮助中有实例,这里不再赘述。

        要用到CreateProperty方法的属性如下表:

参数

中文意义

AppTitle

应用程序标题

AppIcon

应用程序图标

StartUpForm

显示窗体

CustomRibbonID

功能区名称

StartupShortcutMenuBar

快捷菜单

四、注册表

        以上三种方法,可以覆盖Access选项设置的绝大部分了。但是,在自定义功能区中要用到的“显示加载项用户接口错误”选项,据我目前所知,只能使用编辑注册表方法实现:

Public Sub setreg(ByVal value As Boolean)    '读写注册表,设置【显示加载项用户接口错误】

    Dim WSH As Object, A As Variant

    Set WSH = CreateObject("WSCRIPT.SHELL")

    If value = False Then

        WSH.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\General\ReportAddinCustomUIErrors", 0, "REG_DWORD"  '修改相关键值为1

        ' A = WSH.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\General\ReportAddinCustomUIErrors")

    Else

        WSH.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\General\ReportAddinCustomUIErrors", 1, "REG_DWORD"

    End If

    '  MsgBox A

End Sub



Access软件网官方交流QQ群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助