考虑到时间上的紧迫性,还有用户操作的易用性,以后上网查询所需数据库的兼容性,因此决定选用Access来开发。Access具有强大的窗体创建、报表打印、VB
创建数据库和表
1. 打开Microsoft Office Access,创建一个空数据库,与相片的分类目录放在同一个文件夹下。
2. 使用“文件→获取外部数据→导入”功能将Excel表直接导入Access中,保存为“证书信息”表。
创建证书信息报表
1. 创建“证书信息”报表,先插入一个“图像”控件,设置其图片属性为证书模板图片,设置其大小为证书模板的大小,设置其可见性为否,这样有利于证书信息的排版,且不会打印出来;再依次插入要打印的字段列表,设置好字体和字号;最后再插入一个“图像”控件,放置于打印相片的地方,设置其大小为相片的大小,设置其名称为“stuimg”。
2. 依次点击菜单栏“视图→代码”命令,进入VBA代码编写窗口,编写如下代码:
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
Dim imgpath As String
' 依据应用程序路径、认证项目名称、姓名得到相片路径
imgpath = Application.CurrentProject.Path +"\" +认证项目.text +"\"+ 姓名.Text+".jpg"
' 判断照片是否存在,如果不存在则显示一张空白的图片。
If Dir(imgpath) = "" Then imgpath = Application.CurrentProject.Path + "\noimg.bmp"
Stuimg.Picture = imgpath
End Sub
Public stuname As String '定义全局变量stuname
Sub PrintReports(PrintMode As Integer)
' 创建打印预览子程序
Dim strWhereCategory As String
If stuname <> Empty Then
strWhereCategory = "姓名= '" + stuname + "'"
End If
DoCmd.OpenReport "证书信息", PrintMode, , strWhereCategory
DoCmd.Close acForm, "打印预览面板"
End Sub
Private Sub inputname_Change()
' 将文本框输入的字符赋给全局变量sname,用于给打印预览限定条件
stuname = inputname.Text
End Sub
Private Sub 预览_Click()
' 预览报表,本过程使用自定义的 PrintReports 子程序
PrintReports acPreview
End Sub
Private Sub 关闭_Click()
' 关闭窗体
DoCmd.Close
End Sub
Private Sub 打印学生证书_Click()
Dim strFormName As String
strFormName="打印预览面板"
' 打开打印预览面板
DoCmd.OpenForm strFormName, , , , , acDialog
End Sub
Private Sub 关闭当前窗口_Click()
Dim strDocName As String
strDocName = "证书信息"
' 关闭“主切换面板”窗体。
DoCmd.Close
' 设置焦点到数据库窗口;选择“证书信息”表。
DoCmd.SelectObject acTable, strDocName, True
End Sub
Private Sub 退出管理系统_Click()
' 退出 Microsoft Access.
DoCmd.Quit
End Sub
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交