Access交流中心

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

红尘大师的通用系统权限设置求助

小一  发表于:2012-11-07 16:07:08  
复制

大师的作品晚辈弄来弄去,可是代码一懂,在权限设置上想增加个批量设置权限,但不知代码怎样写,请请辈帮忙写一个。

点击下载此附件

 

 

Top
小一 发表于:2012-11-08 14:27:47

麻烦前辈看下



零智 发表于:2012-11-13 11:53:23

按代码中的SQL语句来看,就存在问题了,前面一句DELETE,后面一句却来UPDATE。这不前后矛盾吗?前面把记录删除了,后面却要更新记录,这样的操作实现的了吗?如果要DELETE你只能用INSERT INTO了。

前面一句删除记录的SQL代码也存在问题:FUserID=Me.subUsers!FUserID,在lstUsers中选择,用别的地方记录做条件?

给个按你代码思路做的代码给你:经测试可用,不过我有在窗体中添加一个选择用来参照的用户组合框,行来源:SELECT usysUsers.FUserID, usysUsers.FUserName FROM usysUsers ORDER BY usysUsers.FUserID;
批量操作是先在lstusers中选择要设置的用户,再在cbouse组合框中选择要参照的用户;记住不能自己参照自己。
Private Sub 批量权限_Click()
    Dim strsql As String

    If Me.lstUsers <> Me.CboUse Then
    If Nz(Me.lstUsers) = "" Then
        MsgBox "请选择一个用户!", vbCritical, ""
        Exit Sub
    End If

    strsql = "DELETE * FROM usysRights WHERE FUserID=" & Me.lstUsers
    CurrentDb.Execute strsql
   
    Me.subRights.Requery

    strsql = "INSERT INTO usysRights ( FFormID, FRight, FUserID ) SELECT usysRights.FFormID, usysRights.FRight, " & Me.lstUsers & " AS ID FROM usysRights WHERE FUserID= " & Me.CboUse

    CurrentDb.Execute strsql

    Me.subRights.Requery
    End If
End Sub



小一 发表于:2012-11-13 21:44:23
多谢帮助,测试了可用谢谢!

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