一、CheckQx 这个函数,我走的是另一个方向的,只负责读取权限
'权限检测
Public Function CheckQx(name As String)
Dim rs1 As New ADODB.Recordset
'Dim str As String
Set rs1 = conn.Execute("Select quanxian From yonghu Where name='" & name & "'")
str = rs1("quanxian")
Const 权限长度 = 12
'权限字段所需要的最小长度,不足部分用 0 填充
If Len(str) < 权限长度 Then
str = str & String(权限长度 - Len(str), "0")
End If
'以下代码移动到 form_main 的 Form_load 中。
' Form_main.Text1.Text = str
' '系统管理√
' If Mid(str, 1, 1) = 1 Then
'
Form_main.toolbar_sys.Enabled = True
' Else
'
Form_main.toolbar_sys.Enabled = False
' End If
....
二、对于权限判断,
因为你的对控件的权限操作的,所以,设置控件的代码移到
form_main 的 Form_load 中。
'设置控件状态代码移至此处
Form_main.Text1.Text = str
'系统管理√
If Mid(str, 1, 1) = 1 Then
Form_main.toolbar_sys.Enabled = True
Else
Form_main.toolbar_sys.Enabled = False
End If
'权限管理√
If Mid(str, 2, 1) = 1 Then
Form_main.toolbar_qx.Enabled = True
Else
Form_main.toolbar_qx.Enabled = False
End If
'用户管理√
If Mid(str, 3, 1) = 1 Then
Form_main.toolbar_user.Enabled = True
Else
Form_main.toolbar_user.Enabled = False
End If
....
三、再说你原来的代码:
登陆部分:
'检测权限
CheckQx (Text_name.Text)
'如果按你原来的代码,这里设置 Form_main 的属性,就会导致 form_main 隐性加载
Unload Me
'把自己干掉后,因为后面还有需执行的代码,会导致自己又隐性加载
Unload Form_guanliuser
Load Form_main
Form_ = True
'调试发现,你这句又导致 Form_guanliuser 被隐性加载,并且显示出来了。
总结:逻辑混乱,真的属于初学者。对于整个系统的实现,没有任何规划,而是想到那里做到哪里,和我新手时一样一样。