Heim  >  Artikel  >  Datenbank  >  实例编程:用Access打印带相片的证件

实例编程:用Access打印带相片的证件

WBOY
WBOYOriginal
2016-06-07 15:03:281633Durchsuche

最近笔者接到一个任务,要将学生的证书信息及相片 打印 到3+1技能证书模板上,并且还要传到网上供用人单位查询。原始数据分两部分,一部分是包含学生姓名、身份证号、认证项目、证书编号等信息的Excel表;另一部分是按认证项目分类、以学生姓名为名的相片,

 最近笔者接到一个任务,要将学生的证书信息及相片打印到3+1技能证书模板上,并且还要传到网上供用人单位查询。原始数据分两部分,一部分是包含学生姓名、身份证号、认证项目、证书编号等信息的Excel表;另一部分是按认证项目分类、以学生姓名为名的相片,图片大小均为90×120像素,图片格式均为JPG。
  考虑到时间上的紧迫性,还有用户操作的易用性,以后上网查询所需数据库的兼容性,因此决定选用Access来开发。Access具有强大的窗体创建、报表打印、VBA编程功能,足以胜任大部分小型数据库应用系统的开发。
  创建数据库和表
  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
  创建打印预览面板窗体
  1. 创建“打印预览面板”,依次放置一个用于查询的文本框,并命名为“inputname”;两个命令按钮“预览”、“关闭”。
  2. 依次点击菜单栏“视图→代码”命令,进入VBA代码编写窗口,编写如下代码:
  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
  创建主切换面板窗体
  1. 创建“主切换面板”,放置三个命令按钮“打印学生证书”、“返回数据窗口”、“退出管理系统”。
  2. 依次点击菜单栏“视图→代码”命令,进入VBA代码编写窗口,编写如下代码:
  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
  设置启动时显示主切换面板
  依次点击菜单栏“工具→启动”命令,打开“启动”设置窗口,在“显示窗体→页”选项下选择主切换面板,并取消“显示数据库窗口”,这样在下一次打开此Access数据库时,就会自动显示主切换面板窗体。读者也可根据自己的需要决定是否取消菜单栏和快捷菜单栏,如果取消以后又要显示它们,可以在打开Access数据库时按住Shift键。
  至此,技能证书打印系统开发完毕。本系统在Windows 2000 Server SP4、Microsoft Office Access 2003下调试通过
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn