标题: 用Access轻松打印带相片的证件
问天
元帅
Rank: 1


元帅勋章 终身成就勋章
UID 11493
精华 187
积分 34199
帖子 33353
威望 91
金币 13148
热心 2617
阅读权限 100
注册 2006-4-7
状态 离线
用Access轻松打印带相片的证件

最近笔者接到一个任务,要将学生的证书信息及相片打印到3 1技能证书模板上,并且还要传到网上供用人单位查询。原始数据分两部分,一部分是包含学生姓名、身份证号、认证项目、证书编号等信息的Excel表;另一部分是按认证项目分类、以学生姓名为名的相片,图片大小均为90&;#13809;20像素,图片格式均为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下调试通过,感兴趣的读者可到作者的网站下载(http://www.cqie.net/opus/)。

网友 问天 签名 - 网友社区 请您回个帖。谢谢
PR查询 免费域名 免费空间
顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-10-7 14:05
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP