主窗体用菜单方式,其中有两个主菜单为:一个是mnuE(员工信息管理),其下还有子菜单。另一个是mnuS(工资信息管理),其下也有子菜单。想实现在登录窗体使用两个权限来控制这两个主菜单的有效,即当用户和密码都为1时,mnuE和mnuSf都有效;当用户和密码都为0时,mnuE有效而mnuS无效。
主窗体代码如下:
Private Sub MDIForm_Load()
Me.Show
frmLogin.Show 1 '显示登录对话框
DataEnvironment1.Recordsets(1).Open '打开数据环境
End SubPrivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
a = MsgBox("退出吗?", vbYesNo)
If a = vbYes Then
Unload Me
Else
Cancel = True
End If
End SubPrivate Sub mnuEadd_Click() '员工信息增加
frmEadd.Show
End SubPrivate Sub mnuEbro_Click() '员工信息浏览
frmEbro.Show
End SubPrivate Sub mnuEdel_Click() '员工信息删除
frmEdel.Show
End SubPrivate Sub mnuEmod_Click() '员工信息修改
frmEmod.Show
End SubPrivate Sub mnuEprn_Click() '员工信息打印
frmEprn.Show
End SubPrivate Sub mnuHmnu_Click() '帮助
Dim wdApp As Word.Application '声明Word对象
Dim aDoc As Document '声明Document对象
Set wdApp = New Word.Application '创建 Word 对象并启动 Microsoft Word
Set aDoc = wdApp.Documents.Open(App.Path & "\001.doc", 0, True) '打开Word文件
wdApp.Visible = True '设置Word对象可见
End SubPrivate Sub mnuSadd_Click() '工资信息增加
frmADD.Show
End SubPrivate Sub mnuSbat_Click() '工资信息批处理
frmBAT.Show
End SubPrivate Sub mnuSbro_Click() '工资信息浏览
frmBRO.Show
End SubPrivate Sub mnuSdel_Click() '工资信息删除
frmDEL.Show
End SubPrivate Sub mnuSmod_Click() '工资信息修改
frmMOD.Show
End SubPrivate Sub mnuSprn_Click() '工资信息打印
frmPRN.Show
End SubPrivate Sub mnuX_Click() '退出
Unload Me
End Sub登录窗体代码如下:
Option ExplicitPublic LoginSucceeded As BooleanPrivate Sub cmdCancel_Click()
'设置全局变量为 false
LoginSucceeded = False
Unload Me
'退出应用程序
End
End Sub
Private Sub cmdOK_Click()
'判断是否输入了用户名
If txtUserName.Text = "" Then '如果没有输入用户
MsgBox "请输入用户名!", vbOKOnly + vbCritical, "错误"
Exit Sub '退出这个过程
Else '如果输入了用户名
If txtUserName.Text = "1" And txtPassword.Text = "1" Then
MsgBox "欢迎进入!", vbOKOnly + vbInformation, "欢迎进入"
'将代码放在这里传递
LoginSucceeded = True
Unload Me
Else
If txtUserName.Text = "0" And txtPassword.Text = "0" Then
MsgBox "欢迎!", vbOKOnly + vbInformation, "欢迎"
LoginSucceeded = True
Unload Me
Else
MsgBox "用户名或密码错误!", vbOKOnly + vbCritical, "错误"
txtUserName.Text = ""
txtPassword.Text = "" '清空txtusername及txtpassword控件中的文本内容,让用户重新输入
End If
End If
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If LoginSucceeded Then
Unload Me
Else
End
End If
End Sub
请教高手如何修改如上代码才能实现所要求的功能?谢!
主窗体代码如下:
Private Sub MDIForm_Load()
Me.Show
frmLogin.Show 1 '显示登录对话框
DataEnvironment1.Recordsets(1).Open '打开数据环境
End SubPrivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
a = MsgBox("退出吗?", vbYesNo)
If a = vbYes Then
Unload Me
Else
Cancel = True
End If
End SubPrivate Sub mnuEadd_Click() '员工信息增加
frmEadd.Show
End SubPrivate Sub mnuEbro_Click() '员工信息浏览
frmEbro.Show
End SubPrivate Sub mnuEdel_Click() '员工信息删除
frmEdel.Show
End SubPrivate Sub mnuEmod_Click() '员工信息修改
frmEmod.Show
End SubPrivate Sub mnuEprn_Click() '员工信息打印
frmEprn.Show
End SubPrivate Sub mnuHmnu_Click() '帮助
Dim wdApp As Word.Application '声明Word对象
Dim aDoc As Document '声明Document对象
Set wdApp = New Word.Application '创建 Word 对象并启动 Microsoft Word
Set aDoc = wdApp.Documents.Open(App.Path & "\001.doc", 0, True) '打开Word文件
wdApp.Visible = True '设置Word对象可见
End SubPrivate Sub mnuSadd_Click() '工资信息增加
frmADD.Show
End SubPrivate Sub mnuSbat_Click() '工资信息批处理
frmBAT.Show
End SubPrivate Sub mnuSbro_Click() '工资信息浏览
frmBRO.Show
End SubPrivate Sub mnuSdel_Click() '工资信息删除
frmDEL.Show
End SubPrivate Sub mnuSmod_Click() '工资信息修改
frmMOD.Show
End SubPrivate Sub mnuSprn_Click() '工资信息打印
frmPRN.Show
End SubPrivate Sub mnuX_Click() '退出
Unload Me
End Sub登录窗体代码如下:
Option ExplicitPublic LoginSucceeded As BooleanPrivate Sub cmdCancel_Click()
'设置全局变量为 false
LoginSucceeded = False
Unload Me
'退出应用程序
End
End Sub
Private Sub cmdOK_Click()
'判断是否输入了用户名
If txtUserName.Text = "" Then '如果没有输入用户
MsgBox "请输入用户名!", vbOKOnly + vbCritical, "错误"
Exit Sub '退出这个过程
Else '如果输入了用户名
If txtUserName.Text = "1" And txtPassword.Text = "1" Then
MsgBox "欢迎进入!", vbOKOnly + vbInformation, "欢迎进入"
'将代码放在这里传递
LoginSucceeded = True
Unload Me
Else
If txtUserName.Text = "0" And txtPassword.Text = "0" Then
MsgBox "欢迎!", vbOKOnly + vbInformation, "欢迎"
LoginSucceeded = True
Unload Me
Else
MsgBox "用户名或密码错误!", vbOKOnly + vbCritical, "错误"
txtUserName.Text = ""
txtPassword.Text = "" '清空txtusername及txtpassword控件中的文本内容,让用户重新输入
End If
End If
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
If LoginSucceeded Then
Unload Me
Else
End
End If
End Sub
请教高手如何修改如上代码才能实现所要求的功能?谢!
MsgBox "欢迎!", vbOKOnly + vbInformation, "欢迎"
LoginSucceeded = True
MDIForm!mnuS.Enabled=False
Unload Me