Access快速开发平台批量添加权限控制代码-红尘如烟
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access开发平台


Access快速开发平台批量添加权限控制代码

发表时间:2017/11/1 10:07:04 评论(0) 浏览(17093)  评论 | 加入收藏 | 复制
   
摘 要:Access快速开发平台批量添加权限控制代码
正 文:

      今天遇到一位网友用Access快速开发平台开发的软件里面,所有权限控制的代码都丢失的问题,如果手动一个一个加代码的话太麻烦了,整理了一个程序批量添加,只需要把这个函数的代码放到模块里面,然后执行一下即可。
就可以批量为所有窗体添加权限控制代码了。
不需要再一个个的去手动加了。

注   意:
其他网友如果你的Access快速开发平台里面没有出现权限控制代码丢失的情况,请不要用这个方法。
执行后自动生成的代码是在Load事件里面的。如下图:

点击图片查看大图


'批量添加权限控制代码如下:
Sub AddPermissionCodes()
    Dim obj As AccessObject
    Dim lngCount As Long: lngCount = CurrentProject.AllForms.Count
    Dim lngI As Long
    For Each obj In CurrentProject.AllForms
        lngI = lngI + 1
        If obj.Name Like "frm*" Then
            If Not (obj.Name Like "*_Edit" or obj.Name Like "*_List") Then
                DoCmd.OpenForm obj.Name, acDesign, , , , acHidden
                               
                Dim frm As Form: Set frm = Forms(obj.Name)
                Dim strFormKey As String: strFormKey = ""
                strFormKey = Mid(frm.Name, 4)
                Dim strVBA As String: strVBA = ""
                Dim ctl As Control
                For Each ctl In frm.Controls
                    If TypeOf ctl Is CommandButton Then
                        Select Case ctl.Name
                        Case "btnClose", "btnRefresh"
                        Case Else
                            Dim strCtlKey As String: strCtlKey = ""
                            strCtlKey = frm.Controls(ctl.Name & "_Label").Caption
                            strVBA = strVBA & "    EnableButton Me." & ctl.Name & ", HasPermission(""" & strFormKey & """, """ & strCtlKey & """)" & vbCrLf
                        End Select
                    End If
                Next
'                Debug.Print strVBA
                Dim mdl As Module: Set mdl = frm.Module
                mdl.InsertLines mdl.ProcBodyLine("Form_Load", vbext_pk_Proc) + 1, strVBA
                DoCmd.Close acForm, obj.Name, acSaveYes
                Debug.Print "已处理 " & lngI & "/" & lngCount, obj.Name
            End If
        End If
    Next
End Sub


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access源码示例】批量删除,多项删除示例,如何删除子窗体中复...  【红尘如烟  2011/1/8】
【access源码示例】Excel数据自动批量合并示例  【红尘如烟  2011/7/12】
【Access更新查询】比赛提前或延迟两小时,日期时间加2小时,更...  【麥田  2013/12/31】
【Access字段】用代码删除字段说明,用代码批量删除表中字段说明...  【红尘如烟  2014/6/16】
【Access示例】将15位身份证号码批量升级为18位  【杨雪  2016/3/29】
【Access示例】批量修改报表的属性  【缪炜  2016/6/24】
批量勾选复选框\批量取消勾选复选框示例  【yuhong  2016/7/7】
常见问答
技术分类
相关资源
文章搜索
关于作者

红尘如烟

文章分类

文章存档

友情链接