论文部分内容阅读
[摘要]在开放教育的考试中,有时需要临时打印带有相片的考生资格审批表,但目前的教务管理系统尚不具备这个功能。本文采用Access报表,并利用VBA编程的方法,实现了这个功能,有一定的实用价值。
[关键词]Access VBA 报表 FileSystemObject
一、引言
1999年开始,从中央电大到省级电大、地市分校,全国电大系统均使用电大教务管理信息系统平台,从计划制定、招生注册、学籍管理、考试组织到学生毕业,全部实现计算机管理。电大教务管理信息系统在电大各级教务管理和其它起到了重要作用,但在数据报表功能上存在不足,如不能进行大量定制数据统计汇总,不能将照片信息与学生数据进行关联实现报表打印等,而使用Access的数据处理功能和报表的输出正好能够弥补这一缺陷,完善电大教务管理信息系统的数据处理能力。
Access是Office办公系列软件之一,是一个功能十分强大而易于使用的动态数据处理工具。其中Access的报表是用于快速显示大量数据的交互式工具,还可以根据需要进行筛选,非常便于用户重新组织和统计数据。VBA是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
二、带相片考生资格审批表打印的实现
应用对Access报表的VBA编程实现带相片考生资格审批表批量打印,需要如下几个步骤。
1.从中央电大教务管理系统提取出基本的学生报考数据
教务管理信息系统数据库中的bkbpdfb表为我们提供了进行上述功能的基本数据,我们通过教务管理的数据接口可以将需要的学生报考数据进行导出,并添加1个字段来专门存放当前照片所对应的JPG文件的目录和照片的名称,在这里我们将照片以独立文件的形式存放,减少数据库所占用的存储空间。添加一个名为照片路径的字段,类型为文本型。
字段名称类型照片路径文本登录“CRTVU中央电大教务管理系统”,选择【考务管理】中的【考场编排查询】,选择一种学生类型代码,如“开放本科教育”,单击打印按钮,在出现的对话框中选择【考试通知单】,在起开学号中输入000000000,终止学号中输入999999999,选择工具栏中【生成其他形式文件】按钮,进行数据导出,类型选择Excel with headers,名字为“补办审批表”,单击【保存】按钮,将导出的文件存到指定目录下。
2.制作Access报表
在Access中选择【对象】工具栏,在【表】单击右键选择【导入】按钮,在类型选择*.XLS,文件名为刚从“CRTVU中央电大教务管理系统”中导出的“补办审批表”。
基本数据到位后,开始具体的报表制作。选择【对象】工具栏,在【窗体】点击新件窗体取名为“按学生打印”,在新建的窗体中添加一个文本框控件,该控件名称取为学号,并添加一个命令按钮,直接指向需要显示的报表“补办考生资格审批表”。
选择【对象】工具栏,在【报表】点击新建报表,选择报表的【记录源】写入如下代码。
SELECT 补办审批表.*
FROM 补办审批表
WHERE (((补办审批表.学号)=Trim([Forms]![按学生打印]![学号])));
Trim([Forms]![按学生打印]![学号])表示去除左右空格,来源为“按学生打印”窗体的“学号”文本框的内容。
报表的具体设计,选择【排序与分组】,排序具体添加顺序为,先按班号、在按学号、日、时、试卷号,并在【排序与分组】学号字段的【组页眉】、【组页脚】选择“是”,表示按照学号进行分组,并将月、日、时、分、等字段添加到【主体】部分,表示这部分字段是按照每个学号进行显示。
3.编写VBA代码实现照片读取
为了能随学号的改变显示不同的照片,可以通过添加Access报表的Image控件来实现,可以先将一个Image控件添加到报表的学号页脚部分,将该控件图片指向一张照片。操作方法:选择【工具】菜单,在【宏】点击鼠标左键,选择【Visual Basic 编辑器】菜单,弹出Visual Basic编辑器,选择该报表主体的Format加载事件。在事件代码中,通过FSO文件系统进行判断,看是否存在照片信息与数据库中的信息相匹配,并进行纠错处理,使用CurrentProject.Path来获取当前文件的相对路径。
添加如下代码:
Function ExistsFile_UseFso(strPath As String) As Boolean
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
ExistsFile_UseFso = fso.FileExists(strPath)
Set fso = Nothing
End Function
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
’照片
Dim strPic_old As String
On Error Resume Next
strPic_old = CurrentProject.Path
[关键词]Access VBA 报表 FileSystemObject
一、引言
1999年开始,从中央电大到省级电大、地市分校,全国电大系统均使用电大教务管理信息系统平台,从计划制定、招生注册、学籍管理、考试组织到学生毕业,全部实现计算机管理。电大教务管理信息系统在电大各级教务管理和其它起到了重要作用,但在数据报表功能上存在不足,如不能进行大量定制数据统计汇总,不能将照片信息与学生数据进行关联实现报表打印等,而使用Access的数据处理功能和报表的输出正好能够弥补这一缺陷,完善电大教务管理信息系统的数据处理能力。
Access是Office办公系列软件之一,是一个功能十分强大而易于使用的动态数据处理工具。其中Access的报表是用于快速显示大量数据的交互式工具,还可以根据需要进行筛选,非常便于用户重新组织和统计数据。VBA是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案。
二、带相片考生资格审批表打印的实现
应用对Access报表的VBA编程实现带相片考生资格审批表批量打印,需要如下几个步骤。
1.从中央电大教务管理系统提取出基本的学生报考数据
教务管理信息系统数据库中的bkbpdfb表为我们提供了进行上述功能的基本数据,我们通过教务管理的数据接口可以将需要的学生报考数据进行导出,并添加1个字段来专门存放当前照片所对应的JPG文件的目录和照片的名称,在这里我们将照片以独立文件的形式存放,减少数据库所占用的存储空间。添加一个名为照片路径的字段,类型为文本型。
字段名称类型照片路径文本登录“CRTVU中央电大教务管理系统”,选择【考务管理】中的【考场编排查询】,选择一种学生类型代码,如“开放本科教育”,单击打印按钮,在出现的对话框中选择【考试通知单】,在起开学号中输入000000000,终止学号中输入999999999,选择工具栏中【生成其他形式文件】按钮,进行数据导出,类型选择Excel with headers,名字为“补办审批表”,单击【保存】按钮,将导出的文件存到指定目录下。
2.制作Access报表
在Access中选择【对象】工具栏,在【表】单击右键选择【导入】按钮,在类型选择*.XLS,文件名为刚从“CRTVU中央电大教务管理系统”中导出的“补办审批表”。
基本数据到位后,开始具体的报表制作。选择【对象】工具栏,在【窗体】点击新件窗体取名为“按学生打印”,在新建的窗体中添加一个文本框控件,该控件名称取为学号,并添加一个命令按钮,直接指向需要显示的报表“补办考生资格审批表”。
选择【对象】工具栏,在【报表】点击新建报表,选择报表的【记录源】写入如下代码。
SELECT 补办审批表.*
FROM 补办审批表
WHERE (((补办审批表.学号)=Trim([Forms]![按学生打印]![学号])));
Trim([Forms]![按学生打印]![学号])表示去除左右空格,来源为“按学生打印”窗体的“学号”文本框的内容。
报表的具体设计,选择【排序与分组】,排序具体添加顺序为,先按班号、在按学号、日、时、试卷号,并在【排序与分组】学号字段的【组页眉】、【组页脚】选择“是”,表示按照学号进行分组,并将月、日、时、分、等字段添加到【主体】部分,表示这部分字段是按照每个学号进行显示。
3.编写VBA代码实现照片读取
为了能随学号的改变显示不同的照片,可以通过添加Access报表的Image控件来实现,可以先将一个Image控件添加到报表的学号页脚部分,将该控件图片指向一张照片。操作方法:选择【工具】菜单,在【宏】点击鼠标左键,选择【Visual Basic 编辑器】菜单,弹出Visual Basic编辑器,选择该报表主体的Format加载事件。在事件代码中,通过FSO文件系统进行判断,看是否存在照片信息与数据库中的信息相匹配,并进行纠错处理,使用CurrentProject.Path来获取当前文件的相对路径。
添加如下代码:
Function ExistsFile_UseFso(strPath As String) As Boolean
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
ExistsFile_UseFso = fso.FileExists(strPath)
Set fso = Nothing
End Function
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
’照片
Dim strPic_old As String
On Error Resume Next
strPic_old = CurrentProject.Path