“学生管理”模块包含“学生数据录入修改”和“学生数据查询打印”两个子模块。“学生数据录入修改”模块通过“学生信息输入”窗体实现,设计中就用到了VBA的DAO数据库编程。“学生数据查询打印”模块通过“学生信息查询”窗体实现,设计中用到了“学生信息”查询和“学生信息”报表。“学生信息”报表以“学生信息”查询为记录源实现打印功能。下面分别给以说明。
1.“学生数据录入修改”子模块的设计与实现
(1)“学生信息输入”窗体的设计
此窗体是一个表格式窗体,功能是向“学生”表输入数据或修改“学生”表中已有的数据。输入、修改学生数据通常都是以班级为单位的。随着系统的长期运行,“学生”表中会存储很多班级成千上万学生的记录数据,怎样在窗体运行时按指定班级筛选学生记录是设计的关键。如果通过代码将表格式窗体的记录源设置为SQL查询语句,那么在窗体的运行时,就能显示SQL查询语句检索到的记录,并能修改查询的数据源表。
在窗体的窗体页眉节添加一个用来输入班级名称的组合框,代码中通过组合框的选择来构造SQL查询语句的查询条件。这样就实现了该窗体的基本功能。如果用户在系统运行中输入了班级信息,但没有输入该班级的学生信息,那么SQL查询语句将检索不到相关记录,这时,可以在“班级”表中查找该班级的班级人数,在“学生”表中按班级人数插入记录,插入记录的学号值可以动态生成,保证学号值的唯一性。之后将窗体的记录源设置为SQL查询语句,以获取所插入的记录,并将其显示在窗体上,达到输入该班级学生信息的目的。
通过编程在一个窗体中同时实现了班级学生数据的输入和修改的功能。“学生信息输入”窗体的设计视图如图10-10所示,窗体视图如图10-11所示。
图10-10 “学生信息输入”窗体的设计视图
图10-11 “学生信息输入”窗体的窗体视图
(2)“学生信息输入”窗体的窗体模块代码
2.“学生数据查询打印”子模块的设计与实现
“学生数据查询打印”子模块的基本功能是能够按照班级查询学生信息,基本思路是基于“班级”表和“学生”表设计一个查询“学生信息”,以此查询的SQL语句为窗体的记录源,使得系统运行时通过窗体显示查询的数据。具体方法是,设计一个名为“学生信息查询”的窗体,以“学生信息”查询为记录源先完成窗体的控件和界面布局的设计,运行中通过VBA代码实现按照班级名称条件筛选记录的功能,代码中根据班级名称构造出相关的SQL语句,并指定为窗体的记录源,以显示查询的结果。学生数据的打印功能通过“学生信息”查询和“学生信息”报表实现。报表以查询为记录源。窗体中设计了一个“打开报表”按钮,此按钮的功能是打开报表,同时按照班级名称条件对记录进行筛选。该按钮是用按钮向导生成的,其事件代码是系统生成的嵌入宏,适当修改,增加按班级名称条件对报表记录源进行筛选的功能。
(1)“学生信息”查询的设计
“学生信息”查询的设计视图如图10-12所示。(www.xing528.com)
(2)“学生信息查询”窗体的设计
图10-12 “学生信息”查询的设计视图
“学生信息查询”窗体的设计视图如图10-13所示,因为以数据表为记录源的查询可以更改源表的数据,所以在如图10-13所示的窗体的设计视图中,要将各个绑定型控件的“可用”属性选择为“否”,即不可用,以免在窗体视图中修改源表的数据,这样起到查询窗体的作用。“学生信息查询”窗体的窗体视图如图10-14所示。该窗体的模块代码请查阅系统中的设计。
图10-13 “学生信息查询”窗体的设计视图
图10-14 “学生信息查询”窗体的窗体视图
(3)“学生信息”报表的设计
学生数据打印功能的实现涉及“学生信息”查询和“学生信息”报表。“学生信息”报表以“学生信息”查询为记录源。在窗体打开后,选择“打开报表”按钮来打开报表。由于此按钮的设计中实现了按班级名称条件筛选记录的功能,因此报表打开后显示指定班级的学生记录。筛选记录需对“打开报表”按钮的事件的嵌入宏进行修改,以增加按班级名称条件进行筛选的功能。进入报表视图后切换至打印预览视图,选择打印预览选项卡中打印选项即可打印报表。“学生信息”报表的设计视图和报表视图分别如图10-15和图10-16所示。“打开报表”按钮的事件的嵌入宏的代码如图10-17所示。
图10-15 “学生信息”报表的设计视图
图10-16 “学生信息”报表的报表视图
图10-17 “打开报表”按钮的事件宏
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。