设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5554|回复: 10
打印 上一主题 下一主题

[加解密/安全] 请教高手:用户登录和权限

[复制链接]
跳转到指定楼层
1#
发表于 2010-4-19 19:32:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 淡若远山 于 2010-4-20 11:26 编辑

请教高手:本人已经做了一个简单的系统,表\查询\窗体等都做好了,现在想做一份简单的用户登录和权限的东东,稍微控制一下访问者,但由于本人不会VBA,已经遍访本论坛,从本论坛下载了附件的登录程序,但发现简单的导入附件程序中相应权限\用户表,窗体、模块到我原来的数据库后,仍然无法完全使用。
已经更改了权限和用户表中相应的用户名和窗体名,但发现控制权限(只读、编辑)只对原作者程序中的窗体名有效,对我自制的窗体名无效。
不知道还要改什么地方?
赶着交差了,请各位高手指点!
小生的access水平:表、查询、窗体、报表、宏等基本的各种设置都懂一些,但模块和VBA基本一窍不通,希望各位大佬有的放矢。

附件是原来下本论坛下载的东东,好像是黄海做的吧,在此一并谢过,还希望继续赐教!

顺便再请教一下,如何禁止使用SHIFT键?网上能找到一段段的代码,但这代码如何加到access里去呢?直接保存为一个模块吗,有什么需要注意的地方?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-4-20 08:38:08 | 只看该作者
表-权限表-窗体名
改成你自己的窗体名称

你可以新建一个窗体
放二个命令按钮:启用(Command1),禁用(Command0)
把下面的粘贴进去:
'设置方法:
'1)启用 SetBypassProperty True
'2)禁用  SetBypassProperty False

Private Sub Command0_Click()
SetBypassProperty False
End Sub

Private Sub Command1_Click()
SetBypassProperty True
End Sub
Function SetBypassProperty(Allow As Boolean)

    Const DB_Boolean As Long = 1
   
    If Allow = True Then
        ChangeProperty "AllowBypassKey", DB_Boolean, True
        MsgBox "启用Shift键设置成功!", vbInformation
    Else
        ChangeProperty "AllowBypassKey", DB_Boolean, False
        MsgBox "禁用Shift键设置成功!", vbInformation
    End If
   
End Function

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
3#
 楼主| 发表于 2010-4-20 11:26:04 | 只看该作者
非常感谢asklove 的热心回答。

但:
1、“表-权限表-窗体名  改成你自己的窗体名称”
改了,应该也不行呀,我把附件发上来,在其中做了一个测试窗体,虽然在权限表中进行了设置,但实际却无法对其进行操作控制。
比如说,即使直接用SHIFT进去,点击原窗体时,都会提示“必须登陆才能查看”,但点击测试窗体就没有任何提示就进去了。
是不是还有什么地方要改呢?(比如模块中?)

2、asklove给的代码是解决shift禁用的问题吧?
   我已经建好了窗体,也设好了按钮,但代码该从哪里粘贴进去呢?
   不好意思,本人这方面的确很菜,汗!
请高手继续指点!
4#
 楼主| 发表于 2010-4-20 11:28:41 | 只看该作者
具体示例请参选1楼的附件,已经修改过了,修改了权限表 和增加了启用禁用窗体与按键(但未粘代码)
谢谢了!请多指点!
5#
发表于 2010-4-21 08:22:32 | 只看该作者
打开事件中有这句啊,你没注意看:
Private Sub Form_Open(Cancel As Integer)
Cancel = Not IsPurview(Me)  '用于判断当前用户是否有打开该窗体的权限
End Sub

控件按钮-右键-事件生成器中,可以看到代码,粘贴在此处

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
 楼主| 发表于 2010-4-21 19:48:47 | 只看该作者
谢谢asklove的热心回答,两个问题都明白了,受益匪浅!

不过还有一点小小的疑问,打开窗体的控制有效了,没授权的打不开,但对编辑的限制好像无效,没授权的仍可编辑?
7#
发表于 2010-7-17 11:29:00 | 只看该作者
LZ的附件有密码?打不开。
可否告知,谢谢
8#
发表于 2011-8-9 15:54:42 | 只看该作者
谢谢asklove的热心回答,两个问题都明白了,受益匪浅!

不过还有一点小小的疑问,打开窗体的控制有效了,没授权的打不开,但对编辑的限制好像无效,没授权的仍可编辑?

同问啊?期待高手帮忙解决~~
9#
发表于 2011-8-31 09:25:21 | 只看该作者
学习了
10#
发表于 2012-6-21 11:36:35 | 只看该作者
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 02:01 , Processed in 0.096763 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表