Public Function SysRight(strFrmName As String, frmName As Form)
On Error Resume Next Dim Right As String '如果“系统窗体”表中没有记录,则结束函数,以默认管理员权限打开窗体
If IsNull(DLookup("窗体名", "系统窗体", "窗体名='" & strFrmName & "'")) Then
DoCmd.OpenForm strFrmName
Else
'否则从“权限查询”中读取权限
Right = DLookup("权限", "权限查询", "窗体名 = '" & strFrmName & "' and 用户名='" & UserName & "'")
End If '如果权限为“无权”,则不打开窗体,弹出提示对话框
If Right = "无权" Then
DoCmd.CancelEvent
MsgBox "对不起,您无权使用" & "“" & strFrmName & "”功能。" & Chr(10) & Chr(10) & _
"要获得权限,请与管理员联系。", vbCritical, "无权使用" '如果权限为“只读”,不允许编辑
ElseIf Right = "只读" Then
DoCmd.OpenForm strFrmName
frmName.RecordsetType = 2 '如果权限为“只录”,可以添加新记录,但不能编辑现有记录
ElseIf Right = "只录" Then
DoCmd.OpenForm strFrmName
frmName.AllowEdits = False
'如果权限为“读写”,可以读写记录,但不能删除记录
ElseIf Right = "读写" Then
DoCmd.OpenForm strFrmName
frmName.AllowDeletions = False
'如果权限为“不限”,则以管理员权限打开窗体
ElseIf Right = "不限" Then
DoCmd.OpenForm strFrmName
End IfEnd Function
我用图片做下一窗体的按钮,在图片单击事件里写上这样的
Private Sub Image3_Click()
SysRight Me.Name, Me
On Error GoTo Err_Image3_Click Dim stDocName As String
Dim stLinkCriteria As String stDocName = ChrW(70) & ChrW(95) & ChrW(27983) & ChrW(-30264) & ChrW(-29776) & ChrW(20107)
DoCmd.OpenForm stDocName, , , stLinkCriteriaExit_Image3_Click:
Exit SubErr_Image3_Click:
MsgBox err.Description
Resume Exit_Image3_Click
End Sub
起初在自己电脑上没什么问题,换来个电脑,就说我无效使用NULL,可是权限查询里无空值啊,我很不明白,望高手指点
On Error Resume Next Dim Right As String '如果“系统窗体”表中没有记录,则结束函数,以默认管理员权限打开窗体
If IsNull(DLookup("窗体名", "系统窗体", "窗体名='" & strFrmName & "'")) Then
DoCmd.OpenForm strFrmName
Else
'否则从“权限查询”中读取权限
Right = DLookup("权限", "权限查询", "窗体名 = '" & strFrmName & "' and 用户名='" & UserName & "'")
End If '如果权限为“无权”,则不打开窗体,弹出提示对话框
If Right = "无权" Then
DoCmd.CancelEvent
MsgBox "对不起,您无权使用" & "“" & strFrmName & "”功能。" & Chr(10) & Chr(10) & _
"要获得权限,请与管理员联系。", vbCritical, "无权使用" '如果权限为“只读”,不允许编辑
ElseIf Right = "只读" Then
DoCmd.OpenForm strFrmName
frmName.RecordsetType = 2 '如果权限为“只录”,可以添加新记录,但不能编辑现有记录
ElseIf Right = "只录" Then
DoCmd.OpenForm strFrmName
frmName.AllowEdits = False
'如果权限为“读写”,可以读写记录,但不能删除记录
ElseIf Right = "读写" Then
DoCmd.OpenForm strFrmName
frmName.AllowDeletions = False
'如果权限为“不限”,则以管理员权限打开窗体
ElseIf Right = "不限" Then
DoCmd.OpenForm strFrmName
End IfEnd Function
我用图片做下一窗体的按钮,在图片单击事件里写上这样的
Private Sub Image3_Click()
SysRight Me.Name, Me
On Error GoTo Err_Image3_Click Dim stDocName As String
Dim stLinkCriteria As String stDocName = ChrW(70) & ChrW(95) & ChrW(27983) & ChrW(-30264) & ChrW(-29776) & ChrW(20107)
DoCmd.OpenForm stDocName, , , stLinkCriteriaExit_Image3_Click:
Exit SubErr_Image3_Click:
MsgBox err.Description
Resume Exit_Image3_Click
End Sub
起初在自己电脑上没什么问题,换来个电脑,就说我无效使用NULL,可是权限查询里无空值啊,我很不明白,望高手指点
为何不捕获异常呢?
"无效使用NULL"很有可能是执行上面这句时出现的,不一定就是权限查询
纵梁冲系统软件发包说明
1、首先是根据目前市场现有的软件,比对照做。
2、此软件是AUTOCAD的扩展菜单。
3、完成CAD图纸的参数读取。
4、完成图纸的合理性判断。
5、完成一般参数的录入
6、完成给定格式的文件输出。
7、实际就是CAD的二次开发工作。
备注:报酬可以商量。 联系方式发送到[email protected] 谢谢。