(二)主界面窗体设计
“主界面”窗体的功能是实现与其他窗体和报表的连接,系统用户可以根据自己的需要,单击相应的按钮选择操作。下面介绍该窗体的创建步骤。
1.窗体界面设计
新建一个窗体,命名为“主界面”。按照图4-2所示,设计“主界面”窗体中的各个控件,控件的主要属性如表4-2所示。
图4-2 “主界面”窗体
(三)用户管理窗体设计
“用户管理”窗体可以对用户名和密码进行添加、删除或更改等操作,下面介绍该窗体的创建步骤。
1.窗体界面设计
使用向导创建一个新的窗体,用户管理窗体的控件属性如表4-3所示,界面如图4-3所示。
图4-3 用户管理窗体设计视图
2.添加按钮事件代码
利用命令按钮向导为“编辑用户”、“添加用户”、“删除”、“撤销修改”和“保存修改”按钮添加处理函数,这些命令按钮实现对用户信息进行操作,实现过程如下。
(1)窗体初始化。
初始化窗体,设置窗体加载时命令按钮是否可用和文本框的状态等,代码如下:
Option Compare Database
Public flag As Integer
Private Sub Form_Load()
'设置窗体加载时的属性
cmdedit.Enabled = True
cmdadd.Enabled = True
cmddel.Enabled = False
cmdsave.Enabled = False
cmdcancle.Enabled = False
cmdfirst.Enabled = True
cmdbefore.Enabled = True
cmdnext.Enabled = True
cmdlast.Enabled = True
flag = 0
txtpassword = ""
Form.AllowEdits = True
用户名.Locked = True
密码.Locked = True
备注.Locked = True
Form.AllowDeletions = False
Form.AllowAdditions = False
Form.RecordLocks = 0
End Sub
(2)响应“编辑用户”按钮单击事件代码。
单击“编辑用户”按钮,判断操作人员是否有权限编辑已经存在的用户信息,若密码正确可对用户修改,否则系统显示错误的提示信息,并要求用户重新输入密码,代码如下:Private Sub cmdedit_Click()
'通过密码确认判断使用者是否有权利编辑此用户
If txtpassword.Value <> 密码Then
MsgBox "确认密码不对,无法编辑,请再次输入确认密码"
'设置txtpassword内容为空,并使其获得焦点
txtpassword.Value = ""
txtpassword.SetFocus
Exit Sub
Else
'设置窗体可删除
Form.AllowDeletions = True
'设置密码,备注可更改
密码.Locked = False
备注.Locked = False
'设置记录导航按钮不可用
cmdfirst.Enabled = False
cmdbefore.Enabled = False
cmdnext.Enabled = False
cmdlast.Enabled = False
'设置某些按钮的可用性
cmdadd.Enabled = False
cmddel.Enabled = True
cmdsave.Enabled = True
cmdcancle.Enabled = True
txtpassword.Value = ""
cmdsave.SetFocus
cmdedit.Enabled = False
End If
End Sub
(3)响应“添加用户”按钮单击事件代码。
单击“添加用户”按钮,可以输入新的用户名和密码等内容,代码如下:Private Sub cmdadd_Click()
On Error GoTo Err_cmdadd_Click
'设置标记为1
flag = 1
'设置窗体可增加记录
用户名.Locked = False
密码.Locked = False
备注.Locked = False
Form.AllowAdditions = True
'设置记录导航按钮不可用
cmdfirst.Enabled = False
cmdbefore.Enabled = False
cmdlast.Enabled = False
'设置某些按钮的可用性
cmdedit.Enabled = False
cmdcancle.Enabled = True
cmdsave.Enabled = True
cmddel.Enabled = False
用户名.SetFocus
cmdadd.Enabled = False
DoCmd.GoToRecord , , acNewRec
txtpassword = ""
Exit_cmdadd_Click:
Exit Sub
Err_cmdadd_Click:
MsgBox Err.Description
Resume Exit_cmdadd_Click
End Sub
(4)响应“删除用户”按钮单击事件代码。
单击“删除用户”按钮,可以删除已经存在的用户和密码等内容,代码如下:Private Sub cmddel_Click()
On Error GoTo Err_cmddel_Click
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
'设置记录导航按钮可用
cmdfirst.Enabled = True
cmdbefore.Enabled = True
cmdnext.Enabled = True
cmdlast.Enabled = True
'设置按钮的可用性和窗体的属性
Form.AllowEdits = True
Form.AllowDeletions = False
Form.AllowAdditions = False
Form.RecordLocks = 0
用户名.Locked = True
密码.Locked = True
备注.Locked = True
cmdadd.Enabled = True
cmdsave.Enabled = False
cmdcancle.Enabled = False
txtpassword.Value = ""
cmdedit.SetFocus
cmddel.Enabled = False
'标记变为0
flag = 0
Exit_cmddel_Click:
Exit Sub
Err_cmddel_Click:
MsgBox Err.Description
Resume Exit_cmddel_Click
End Sub
(5)响应“撤销修改”按钮单击事件。
单击“撤销修改”按钮,对已经修改的用户内容不进行保存,仍保持原来的信息,代码如下:
Private Sub cmdcancle_Click()
On Error GoTo Err_cmdcancle_Click
If flag = 1 Then
'设置记录导航按钮可用
cmdfirst.Enabled = True
cmdbefore.Enabled = True
cmdnext.Enabled = True
cmdlast.Enabled = True
cmdadd.Enabled = True
'设置某些按钮的可用性
cmddel.Enabled = False
cmdedit.Enabled = True
cmdadd.Enabled = True
cmdsave.Enabled = False
cmdedit.SetFocus
cmdcancle.Enabled = False
'取消添加
'设置窗体可删除记录
Form.AllowDeletions = True
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuV er70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
'设置txtpassword内容为空
txtpassword.Value = ""
'重新设置窗体不可删除
Form.AllowDeletions = False
'设置撤销后转到前一个记录
DoCmd.GoToRecord , , acPrevious
'标记变为0
flag = 0
'窗体不可添加记录
用户名.Locked = True
密码.Locked = True
备注.Locked = True
Form.AllowAdditions = False
End If
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
Exit_cmdcancle_Click:
Exit Sub
Err_cmdcancle_Click:
' MsgBox Err.Description
cmdsave.SetFocus
cmdcancle.Enabled = False
Resume Exit_cmdcancle_Click
End Sub
(6)响应“保存修改”按钮单击事件。
单击“保存修改”按钮,对已经修改的会员信息进行保存,代码如下:Private Sub cmdsave_Click()
On Error GoTo Err_cmdsave_Click
'设置记录导航按钮可用
cmdfirst.Enabled = True
cmdbefore.Enabled = True
cmdnext.Enabled = True
cmdlast.Enabled = True
If flag = 1 Then
If txtpassword.Value <> 密码Then
MsgBox "两个密码不一样,无法保存,请再次输入密码"
txtpassword.Value = ""
txtpassword.SetFocus
Exit Sub
End If
End If
If flag = 2 Then
If txtpassword.Value <> 密码Then
MsgBox "密码已改,请输入正确的确认密码或重置密码"
txtpassword.Value = ""
txtpassword.SetFocus
Exit Sub
End If
End If
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 '设置按钮的可用性和窗体的属性
Form.AllowEdits = True
Form.AllowDeletions = False
Form.AllowAdditions = False
Form.RecordLocks = 0
用户名.Locked = True
密码.Locked = True
备注.Locked = True
cmdedit.Enabled = True
cmdadd.Enabled = True
cmddel.Enabled = False
cmdcancle.Enabled = False
txtpassword.Value = ""
cmdedit.SetFocus
cmdsave.Enabled = False
'标记变为0
flag = 0
Exit_cmdsave_Click:
Exit Sub
Err_cmdsave_Click:
MsgBox Err.Description
Resume Exit_cmdsave_Click End Sub