Access交流中心

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

快速开发平台--权限管理提示索引重复

王萌萌  发表于:2018-12-27 15:41:57  
复制

权限管理点击授权后提示索引重复,错误标记在RST.UPDATE

 

Top
伊西军 发表于:2018-12-27 15:55:17
检查下是不是模块名字或者权限名称重复了 另外 这个授权按钮的单击事件中有两个rst.Update

王岚 发表于:2018-12-27 16:46:55

经检查模块名字或者权限名称没有重复,错误**标记的是第一个rst.Update

Public Sub btnSave_Click()
    SetCursor ctWait

    Dim strSQL As String: strSQL = "SELECT ModuleID FROM SysLocalModules WHERE Allow<>0"
    Dim rstTmp As Object: Set rstTmp = CurrentDb.OpenRecordset(strSQL)
    DAORunSQL "DELETE FROM Sys_ModulePermissions WHERE RoleID=" & Me.lstRoleID
    strSQL = "SELECT * FROM Sys_ModulePermissions WHERE RoleID=" & Me.lstRoleID
    Dim rst As Object: Set rst = OpenADORecordset(strSQL, adLockOptimistic)
    Do Until rstTmp.EOF
        rst.AddNew
        rst!ModuleID = rstTmp!ModuleID
        rst!RoleID = Me.lstRoleID
        rst!Allow = True
        rst.Update-----此处错误标记
        rstTmp.MoveNext
    Loop
    rst.Close
   
    strSQL = "SELECT ModuleID,FunctionID FROM SysLocalFunctions WHERE Allow<>0"
    Set rstTmp = CurrentDb.OpenRecordset(strSQL)
    DAORunSQL "DELETE FROM Sys_FunctionPermissions WHERE RoleID=" & Me.lstRoleID
    strSQL = "SELECT * FROM Sys_FunctionPermissions WHERE RoleID=" & Me.lstRoleID
    Set rst = OpenADORecordset(strSQL, adLockOptimistic)
    Do Until rstTmp.EOF
        rst.AddNew
        rst!ModuleID = rstTmp!ModuleID
        rst!FunctionID = rstTmp!FunctionID
        rst!RoleID = Me.lstRoleID
        rst!Allow = True
        rst.Update
        rstTmp.MoveNext
    Loop
    rst.Close
    MsgBoxEx LoadString("Authorized successfully!"), vbInformation
    WriteOperationLog Me.Caption, Me.btnSave.Caption, Me.lstRoleID.Column(2)
End Sub



仙来 发表于:2018-12-28 08:54:24
比对,你的代码似乎没有错。你看看Sys_ModulePermissions表的ModuleID和RoleID 必填字段和索引属性。

王岚 发表于:2018-12-28 09:29:52
搞定了。原来是Sys_ModulePermissions和Sys_FunctionPermissions没有做成链接表,而在前台程序里。

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