Office中国论坛/Access中国论坛

标题: 关于事件上与权限设定的问题 [打印本页]

作者: williamwangc    时间: 2013-5-18 15:14
标题: 关于事件上与权限设定的问题
我模仿红尘如烟的通用开发平台的设置权限的函数并按照我的理解做了一段FUNCTION,并按照我的理解做了一些调整,并做了调试。
奇怪的是我功能函数放在按钮里面运行正常,但放到form.OnXxxx就不行了。
function如下:
  1. Public Function fnintSetRightOfFormButton(strFormName As String, RightOfEdit As Boolean, RightOfAdd As Boolean, RightOfDelete As Boolean) As Integer
  2. Dim ctl As Control
  3. If fnblObjectExists("form", strFormName) = True Then
  4.     Forms(strFormName).AllowEdits = RightOfEdit
  5.     Forms(strFormName).AllowAdditions = RightOfAdd
  6.     Forms(strFormName).AllowDeletions = RightOfDelete
  7.     For Each ctl In Forms(strFormName)
  8.         If ctl.Name Like "cmd*Add*" And ctl.ControlType = acCommandButton Then
  9.         ctl.Enable = RightOfAdd
  10.         ElseIf ctl.Name Like "cmd*Edit*" And ctl.ControlType = acCommandButton Then
  11.         ctl.Enable = RightOfEdit
  12.         ElseIf ctl.Name Like "cmd*Del*" And ctl.ControlType = acCommandButton Then
  13.         ctl.Enable = RightOfDelete
  14.         End If
  15.     Next ctl
  16.     fnintSetRightOfFormButton = 1
  17. Else
  18. MsgBox "该窗体不存在"
  19. fnintSetRightOfFormButton = -1
  20. End If
  21. End Function
复制代码
考虑到可能事件只能用sub,我把这个FUNCTION改成了一个无返回值的SUB,但还是无效。
在一个按钮的CLICK事件中写了这样的代码,如下:
  1. Private Sub Command0_Click()
  2. DoCmd.OpenForm "窗体2"
  3. Forms("窗体2").OnOpen = "=fnsubSetRightOfFormButton ('窗体2' , False, False, False)"
复制代码
PS.fnsubSetRightOfFormButton是fnintSetRightOfFormButton的sub形式
另外fnblObjectExists("form", strFormName) 是我自写的另外一个自定义FUNCTION
作者: todaynew    时间: 2013-5-18 18:00
在属性设置中只能调用Public Function。
作者: williamwangc    时间: 2013-5-18 18:47
标题: RE: 关于事件上与权限设定的问题
todaynew 发表于 2013-5-18 18:00
在属性设置中只能调用Public Function。

我用的是function,不过无返回值。请版主再看看。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3