用Access轻松打印带相片的证件

access|打印

 最近笔者接到一个任务,要将学生的证书信息及相片打印到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下调试通过,感兴趣的读者可到作者的网站下载(http://www.cqie.net/opus/)。

时间: 2024-08-28 21:41:11

用Access轻松打印带相片的证件的相关文章

Access报表打印——自动分页

access|报表打印|分页 Access报表打印--自动分页   问题: 每页打印一定行数后自动分页  方法一: 加一个分页符,在报表的代码界面里面写入以下代码:Option Compare DatabaseDim row As LongDim RowsInPage As IntegerPrivate Sub 主体_Format(Cancel As Integer, FormatCount As Integer)    RowsInPage = 7    row = row + 1    If

ACCESS如何打印窗体中当前显示的记录

access|打印|显示     问题: 连续或者单个窗体,如何打印当前显示的记录?当前窗体还有对应的子窗体,也要一起打印出来我在一个窗体里有一个单号,大子窗体里有几组数据,我的报表是一组数据一页,请问如何实现按一下打印,能够只打印当前单号的数据报表? 回答: 这个问题太简单,我就不另外做说明了,请去看罗斯文示例数据库的"订单"窗体上"打印发货单"按钮的单击事件的代码 http://access911.net/down/eg/northwind2003.rarhtt

Access报表打印如何自动分页

问题: 每页打印一定行数后自动分页 方法一: 加一个分页符,在报表的代码界面里面写入以下代码: option compare databasedim row as longdim rowsinpage as integerprivate sub 主体_format(cancel as integer, formatcount as integer) rowsinpage = 7 row = row + 1 if row >= rowsinpage then me.pagebreak18.visi

在Java中轻松打印文档

有关在Java中实现文档打印的典型说法描述了一个复杂的过程,它要求对字 体进行测定.对文本进行解析并将结果绘制到一个Graphics对象中.这个过程似 乎执行起来相当困难,并且它和用于文档视频显示的高级编程方法不一致.如果 你想要花费大量的精力来完成这个过程,那么你就不会首先想到要在Java中编程 . 你一定不想自己完成测定.解析和绘制过程,而是希望通过简单地将文档发 送到一个能为你处理所有事情的对象中来完成这个任务.本文就将介绍这样一个 对象――DocumentRenderer,它将一个文档作

Web打印的解决方案之证件套打

由于以前未接触过套打,一直觉得套打是一个比较神秘和麻烦的事情,因为打印机的 位置总是需要调整的,你总不能硬编码吧?但是如果位置可调,有需要直观一些来处理, 那就比较麻烦了. 在前面介绍过<Web打印的解决方案之普通报表打印>的一片文章中提到过那个打印控 件Lodop,做起套打来感觉还是挺方便的,至少位置调整界面不需要自己弄,位置嘛,也 提供了自动保存的功能,不需要理会. 一般的套打,包含了几部分操作:打印预览.打印维护.打印设计. 打印预览和打印维护是面向终端用户的,打印维护是指内容不能修改删

让Win7系统轻松打印的一些设置技巧

打印工作其实并不难,但是要打印一个文件夹的所有文件目录那就有些麻烦了,这让有些办公人士很是烦恼.不用犯愁,看看win7是如何来为大家减少麻烦,如何为系统添加打印目录的. 方法一 提供了一次性打印文件夹所有文件目录的解决方案 首先,需要做的就是打开命令提示符管理器,然后定位到你想要列出的文件目录所在文件夹或是绝对路径,然后执行以下命令:dir> contents.txt,这时你会看到在文件目录文件夹下新增了一个名为"contexts.txt"的文件,此时打开这个文件并点击打印即可,

沟通新革命,惠普云打印带你畅游太空

活动会场:北京世贸天阶      惠普的打印机外设一直是家庭或公司用户的主要选择之一,而最近惠普在北京召开了发布会,不仅一次性发布了三个系列的10款打印机新品,而且还带来了"云打印"战略,一下子又让自己站到了行业的最前沿.尤其是"云打印",因为在过去的长时间当中,它其实一直处于概念的状态,很多厂商只是为用户勾画蓝图,但却没有一个真正的实现的方案,而惠普的这次发布会,真正带来了可行的方案与产品支持,让每一位普通用户都能用到"云",感受"云

使用Photoshop CS2轻松创建全景相片

创建 在生活或工作中,我们有时会用到全景相片,比如在拍摄大型的合影照片,或者某些工厂中比较长的生产线时,就需要全景相片来表现比较广阔的画面.但是,由于受我们的相机镜头限制,所拍摄的画面宽度或高度并不能满足我们的需求.我们可以使用Photoshop的Photomerge命令来制作全景照片,该命令是Photoshop CS的一个新增功能,在最新版本的Photoshop CS2中仍然保留了它,它是一个可以将多个照片组合成一张连续图像的命令.在这里我们使用Photoshop CS2中的Photomerg

使用Word分隔符轻松打印超宽图片

在通常的办公应用中,我们的纸张类型都是纵向排列的.但有时文档中插入的图表的宽度会大于纸宽.这时大家往往会把图表单独拷贝到一个新文档中,然后将纸张方向设为横向.这样往往会影响页码的排列,而且操作也比较麻烦.合理利用Word的分节符这个问题即可轻松解决. 首先将光标定位在要插入图标的上方,然后打开"插入"菜单,选择"分隔符"命令,在打开的窗口中把"分节符类型"设为"下一页".用同样的方法,在插入图片的后面再插入一个"下一