Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

如何禁止数据库窗口以及菜单栏中某些命令的显示?

刘小建  发表于:2013-04-04 08:43:30  
复制

如何禁止数据库窗口以及菜单栏中某些命令的显示?

我不愿意别人复制我的数据库或参考我的设计,所以我把它生成.mde文件,可是表和查询还有数据库窗口、备份数据库命令等都可见;如果建立一个快捷方式,以runtime方式打开数据库,上述就都看不见了,可是,很容易修改快捷方式的属性,去掉runtime的字样。用什么办法才能实现禁止一些对象显示呢?

用宏或代码能实现吗?

谢谢指教!

 

Top
漏蛧尐魚℡ 发表于:2013-04-05 08:14:29
刘小建 发表于:2013-04-05 10:52:43

我的是2003,运行不了这个。好像还不太一样,我是想不光禁止一个工具栏,还有数据库窗口、菜单栏等。我现在用“启动”命令,把能取消的都取消,然后禁止按shift键启动,就是让allowbypasskey属性为假。代码是别人教的:

如何禁止用户使用Shift键跳过启动窗体

来源:网络
适用版本:Access 97、Access 2000、Access 2002、Access 2003

【问题详述】
如果程序设置了启动窗体,程序在打开时都会自动进入启动窗体界面,而不会显示Access的数据库窗体,但有些好奇的用户可能知道按住Shift键来打开程序,然后进入到数据库窗体,修改表或其他Access对象的内容,从而导致程序出错或者数据丢失,有什么办法禁止用户使用Shift键跳过启动窗体呢?
 
【问题处理】
可以通过设置“AllowBypassKey”属性来达到禁止使用Shift键的目的,而在Access数据库和Access项目中禁止Shift键需要使用不同的方法。

1.在Access数据库(MDB)中禁止Shift键的方法
首先创建一个设置数据库属性的通用函数。
Function ChangeProperty(strPropName As String, varPropType As Variant, varPropvalue As Variant) As Integer
Dim dbs As Object, prp As Variant
Const conPropNotFoundError = 3270 '没有找到属性的错误常量
Set dbs = CurrentDb '获取当前的数据库对象
On Error GoTo Change_Err '如果出错则转到错误处理
dbs.Properties(strPropName) = varPropvalue '如果找到属性,则设置属性的值为新的值
ChangeProperty = True '设置成功,设置函数值返回真
Change_Bye:
Exit Function
Change_Err:
If Err = conPropNotFoundError Then ' 如果错误是数据库没有这个属性
Set prp = dbs.CreateProperty(strPropName, _
varPropType, varPropvalue) ' 创建新的属性,并设置它的默认值
dbs.Properties.Append prp ' 将新的属性对象绑定到数据库
Resume Next ' 继续执行后面的代码
Else
ChangeProperty = False ' 如果是其它错误,则函数值返回假
Resume Change_Bye ' 转到函数退出处理
End If
End Function
然后调用这个通用函数来设置“AllowBypassKey”属性值为False,代码如下。
ChangeProperty "AllowBypassKey", 1, False 'False为禁止Shift键,True为恢复
如果想允许使用Shift键,则同样设置ChangeProperty "AllowBypassKey", 1, True就可以了。
 

 



总记录:2篇  页次:1/1 9 1 :