修改后提示,Rs2未定义,可是,????,红色是修改部分。
(我是第一次用代码,尚在学习当中,如果有类似小儿科的问题,也请大家帮忙耐心指教)
谢谢!!)
Function OpenForm(FormID As Integer)
On Error GoTo Err_OpenForm
Dim stLinkCriteria As String
Dim i As Integer '定义用于循环的整型变量
Dim STemp As String '定义字符型变量
Dim Rs1 As ADODB.Recordset '定义数据集变量
Dim Rs2 As ADODB.Recordset '定义数据集变量
'为定义的数据集变量分配空间
Set Rs1 = New ADODB.Recordset
Set Rs2 = New ADODB.Recordset
'打开“系统权限”数据表
STemp = "Select * From 系统权限"
Rs1.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'打开“系统窗体”数据表
STemp = "Select * From 系统窗体"
Rs2.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'定义用于保存用户是否有权限打开该窗体的布尔变量
Dim blnOpen As Boolean
'定义保存“窗体名称”的字符型变量
Dim FormName As String
'为blnOpen布尔变量赋初值
blnOpen = False
'判断“系统权限”数据是否为空
If Rs1.RecordCount < 1 Then
blnOpen = False
Else
Rs1.MoveFirst
'判断当前“登录用户”是否有权限打开FormID对应的窗体
For i = 1 To Rs1.RecordCount
If Rs1("用户ID") = UserID And Rs1("窗体ID") = FormID _
And Rs1("权限") = True Then
'如果用户有权限,同把blnOpen变量值设置为“真”
blnOpen = True
Else
Rs1.MoveNext
End If
Next i
End If
'在“系统窗体”数据表中搜索待打开窗体的“名称”
Rs2.MoveFirst
For i = 1 To Rs2.RecordCount
If Rs2("窗体ID") = FormID Then
'把窗体名称赋予FormName变量
FormName = Rs2("窗体名称")
Else
Rs2.MoveNext
End If
Next i
'判断用户是否有权限打开窗体,blnOpen为“真”有权限
If blnOpen = False Then
'如果用户没有权限,则弹出“无权使用”窗口
MsgBox "您没有权限使用" & "“" & FormName & "”窗体", vbCritical, "无权使用"
Else
'使用DoCmd对象OpenForm的方法打开FormName窗体
DoCmd.OpenForm FormName, acFormDS, , stLinkCriteria
End If
If FormName = [每日输入] Or [权限管理] Then
'使用DoCmd对象OpenForm的方法打开FormName窗体
DoCmd.OpenForm FormName, acNormal, , , , acWindowNormal
Else
End If
'释放记录集空间
Set Rs1 = Nothing
Set Rs2 = Nothing
Exit Function
Err_OpenForm:
'释放记录集空间
Set Rs1 = Nothing
Set Rs2 = Nothing
'弹出“窗体打开错误”信息窗口
MsgBox Err.Description, vbOKOnly, "窗体打开错误"
End Function
[此贴子已经被作者于2007-1-15 9:04:14编辑过]
|