实验五 宏与模块的建立与使用
实验准备:
了解和掌握文字教材第11章的全部内容。
实验目的:
能够启动和进入Access数据库管理系统操作环境,能够打开一个数据库文件,能够建立用户所需要的各种绑定型和非绑定型窗体对象,能够打开、修改和关闭窗体对象,能够对窗体对象进行各种视图状态之间的转换。
实验要求:
按照下面“实验内容与步骤”完成本次实验。
实验内容和步骤:
本次上机操作题继续使用前四个实验所建立的“学生成绩管理”数据库,以及在其中建立的学生表、教师表、课程表和选课表。
1.打开已经在“数据库课程实验”的文件夹中创建的“学生成绩管理”数据库。
2.创建一个宏,要求自动打开“学生表窗体”,并将该窗体最大化,然后显示“窗体打开并最大化!”信息。
假定该宏被保存和命名为“打开学生表窗体宏”,则该宏中的内容如图5-1所示。
图5-1打开学生表窗体宏的设计视图
3.创建一个条件宏,要求首先自动打开“学生表窗体”,当学生性别为“女”时,系统给出提示信息“该生是女生!”,当学生的性别为“男”时,系统给出提示信息“该生是男生!”。
假定该宏被保存和命名为“判断学生男女性别的宏”,则该宏中的内容如图5-2所示。
图5-2 判断学生男女性别的宏的设计视图
上面只能对当前记录做一次判别,如果要判断“学生表窗体”中每个学生的性别,则建立的宏如图5-3所示。
图5-3 判断每个学生男女性别的宏的设计视图
4.建立一个简单的多分支程序。要求通过InputBox接收用户输入的当月销售额,然后利用If…Then…ElseIf语句对输入的该月销售额进行判断,并依此计算该雇员的销售提成和给出相应的评语。
提成比例是:如果当月销售额大于等于20000,提成8%,评语是“优秀!”;如果当月销售额小于20000但大于等于15000,提成6%,评语是“良好!”;如果当月销售额小于15000但大于等于10000,提成4%,评语是“仍需努力!”;如果当月销售额小于10000提成2%,评语是“需要加倍努力!”。
根据题意,所建立的程序模块如图5-4所示。
图5-4 计算销售提成的程序模块
5.参照图5-5建立一个建立主面板窗体,面板中的前五个命令按钮功能先不用实现,只实现当单击“退出系统”时退出Access系统的功能。
图5-5 主面板窗体
此窗体的设计视图如图5-6所示。
图5-6 主面板窗体的设计视图
假定主面板窗体中六个命令按钮的名称依次采用创建时系统所命名的名称Command0~Command5,则Command5命令按钮为“退出系统”命令。该命令单击事件的宏如图5-7所示。
图5-7 “退出系统”命令的内嵌宏
主面板窗体的窗体视图(运行视图)如图5-8所示。
图5-8 主面板窗体的运行视图
6.参照图5-9建立一个用户登录窗体,要求当单击“确定”命令按钮时判断输入的用户名和密码是否在用户表中存在,如果存在则关闭登录窗体并打开进入“主面板”窗体;如果用户名或密码错误则给出提示信息并要求用户重新输入。单击“取消”命令按钮时则关闭登录窗体本身。
图5-9 用户登录窗体
具体操作步骤如下:
(1)建立用户表,假定用户表的内容如图5-10所示。
图5-10 用户表中的内容
(2)新建用户登录窗体的设计视图和窗体视图,分别如图5-11和5-12所示。
图5-11 用户登录窗体的设计视图
图5-12 用户设计窗体的运行视图
(3)假定用来输入用户名文本框的名称为username,用来输入密码文本框的名称为password,确定按钮的名称为cmd_ok,取消按钮的名称为cmd_cancel。则确定按钮的单击事件的过程代码为:
Private Sub cmd_ok_Click()
Dim conn As ADODB.Connection '定义连接对象conn
Dim rs As New ADODB.Recordset '定义记录集对象rs
Dim strSQL As String 'strSQL是查询语句对应的字符串变量
Set conn = CurrentProject.Connection 'conn对象连接到当前数据库
strSQL = "select * from 用户表 where 用户名='" '本行和下一行构造查询字符串strSQL
strSQL = strSQL & username & " ' and 密码='" & password & "'"
rs.Open strSQL, conn '执行查询返回记录集到rs中
If rs.EOF Then '判断并给出提示信息
MsgBox "抱歉,用户名或密码错误!请重新输入"
username = ""
password = ""
Exit Sub
Else
MsgBox "恭喜您!用户名和密码正确。接着打开主面板窗体!"
username = ""
password = ""
Me.Visible = False
DoCmd.OpenForm "主面板"
End If
End Sub
(4)对于窗体中的取消按钮,使用内嵌的宏就可以关闭本窗体,在宏生成器中选择CloseWindow宏命令即可,如图5-13所示。
图5-13 取消按钮的单击宏
或者对“取消”按钮编写单击事件的过程代码,则为:
Private Sub cmd_cancel_Click()
Me.Visible = False
End Sub
7.建立学生信息管理窗体,如图5-14所示。窗体主体部分以纵栏式显示学生表中记录。要求窗体中添加徽标和标题,在窗体主体部分添加四个记录导航按钮栏,分别指向第一个、前一个、后一个和最后一个记录;添加五个命令按钮,分别用于添加新记录、删除当前记录、保存当前记录、查询报表和返回到主面板窗体。其中“查询报表”按钮用于关闭当前窗体并打开一个学生信息报表。
图5-14 学生信息管理窗体
具体操作步骤如下:
(1)首先打开学生表,然后单击“创建”选项卡下的“报表”按钮建立“学生信息报表”以备使用。
(2)通过窗体向导设计出的显示学生表的纵栏式窗体如图5-15所示。
图5-15 学生信息管理的纵栏式窗体
(3)通过命令导航和属性表设置得到的设计视图如图5-16所示,其中水平四个命令按钮的名称依次为Command1~Command4,垂直五个命令按钮的名称依次为Command5~Command9。
图5-16 添加命令按钮后的纵栏式窗体
(4)对“查询报表”按钮创建单击事件的内嵌宏,如图5-17所示。
图5-17 为“查询报表”按钮创建单击事件的内嵌宏
(5)对“返回”按钮创建单击事件的内嵌宏,如图5-18所示。
图5-18 为“返回”按钮创建单击事件的内嵌宏
(6) 此题所建立的“学生信息管理”窗体的运行视图(窗体视图)如图5-19所示。
图5-19 “学生信息管理”窗体的运行视图