|
我模仿红尘如烟的通用开发平台的设置权限的函数并按照我的理解做了一段FUNCTION,并按照我的理解做了一些调整,并做了调试。
奇怪的是我功能函数放在按钮里面运行正常,但放到form.OnXxxx就不行了。
function如下:- Public Function fnintSetRightOfFormButton(strFormName As String, RightOfEdit As Boolean, RightOfAdd As Boolean, RightOfDelete As Boolean) As Integer
- Dim ctl As Control
- If fnblObjectExists("form", strFormName) = True Then
- Forms(strFormName).AllowEdits = RightOfEdit
- Forms(strFormName).AllowAdditions = RightOfAdd
- Forms(strFormName).AllowDeletions = RightOfDelete
- For Each ctl In Forms(strFormName)
- If ctl.Name Like "cmd*Add*" And ctl.ControlType = acCommandButton Then
- ctl.Enable = RightOfAdd
- ElseIf ctl.Name Like "cmd*Edit*" And ctl.ControlType = acCommandButton Then
- ctl.Enable = RightOfEdit
- ElseIf ctl.Name Like "cmd*Del*" And ctl.ControlType = acCommandButton Then
- ctl.Enable = RightOfDelete
- End If
- Next ctl
- fnintSetRightOfFormButton = 1
- Else
- MsgBox "该窗体不存在"
- fnintSetRightOfFormButton = -1
- End If
- End Function
复制代码 考虑到可能事件只能用sub,我把这个FUNCTION改成了一个无返回值的SUB,但还是无效。
在一个按钮的CLICK事件中写了这样的代码,如下:- Private Sub Command0_Click()
- DoCmd.OpenForm "窗体2"
- Forms("窗体2").OnOpen = "=fnsubSetRightOfFormButton ('窗体2' , False, False, False)"
复制代码 PS.fnsubSetRightOfFormButton是fnintSetRightOfFormButton的sub形式
另外fnblObjectExists("form", strFormName) 是我自写的另外一个自定义FUNCTION |
|