考慮到時(shí)間上的緊迫性,還有用戶操作的易用性,以后上網(wǎng)查詢所需數(shù)據(jù)庫(kù)的兼容性,因此決定選用access來(lái)開(kāi)發(fā)。access具有強(qiáng)大的窗體創(chuàng)建、報(bào)表打印、vba編程功能,足以勝任大部分小型數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)。
創(chuàng)建數(shù)據(jù)庫(kù)和表
1. 打開(kāi)microsoft office access,創(chuàng)建一個(gè)空數(shù)據(jù)庫(kù),與相片的分類目錄放在同一個(gè)文件夾下。
2. 使用“文件→獲取外部數(shù)據(jù)→導(dǎo)入”功能將excel表直接導(dǎo)入access中,保存為“證書(shū)信息”表。
創(chuàng)建證書(shū)信息報(bào)表
1. 創(chuàng)建“證書(shū)信息”報(bào)表,先插入一個(gè)“圖像”控件,設(shè)置其圖片屬性為證書(shū)模板圖片,設(shè)置其大小為證書(shū)模板的大小,設(shè)置其可見(jiàn)性為否,這樣有利于證書(shū)信息的排版,且不會(huì)打印出來(lái);再依次插入要打印的字段列表,設(shè)置好字體和字號(hào);最后再插入一個(gè)“圖像”控件,放置于打印相片的地方,設(shè)置其大小為相片的大小,設(shè)置其名稱為“stuimg”。
2. 依次點(diǎn)擊菜單欄“視圖→代碼”命令,進(jìn)入vba代碼編寫(xiě)窗口,編寫(xiě)如下代碼:
private sub 主體_format(cancel as integer, formatcount as integer)
dim imgpath as string
' 依據(jù)應(yīng)用程序路徑、認(rèn)證項(xiàng)目名稱、姓名得到相片路徑
imgpath = application.currentproject.path +"/" +認(rèn)證項(xiàng)目.text +"/"+ 姓名.text+".jpg"
' 判斷照片是否存在,如果不存在則顯示一張空白的圖片。
if dir(imgpath) = "" then imgpath = application.currentproject.path + "/noimg.bmp"
stuimg.picture = imgpath
end sub
創(chuàng)建打印預(yù)覽面板窗體
1. 創(chuàng)建“打印預(yù)覽面板”,依次放置一個(gè)用于查詢的文本框,并命名為“inputname”;兩個(gè)命令按鈕“預(yù)覽”、“關(guān)閉”。
2. 依次點(diǎn)擊菜單欄“視圖→代碼”命令,進(jìn)入vba代碼編寫(xiě)窗口,編寫(xiě)如下代碼:
public stuname as string '定義全局變量stuname
sub printreports(printmode as integer)
' 創(chuàng)建打印預(yù)覽子程序
dim strwherecategory as string
if stuname <> empty then
strwherecategory = "姓名= '" + stuname + "'"
end if
docmd.openreport "證書(shū)信息", printmode, , strwherecategory
docmd.close acform, "打印預(yù)覽面板"
end sub
private sub inputname_change()
' 將文本框輸入的字符賦給全局變量sname,用于給打印預(yù)覽限定條件
stuname = inputname.text
end sub
private sub 預(yù)覽_click()
' 預(yù)覽報(bào)表,本過(guò)程使用自定義的 printreports 子程序
printreports acpreview
end sub
private sub 關(guān)閉_click()
' 關(guān)閉窗體
docmd.close
end sub
創(chuàng)建主切換面板窗體
1. 創(chuàng)建“主切換面板”,放置三個(gè)命令按鈕“打印學(xué)生證書(shū)”、“返回?cái)?shù)據(jù)窗口”、“退出管理系統(tǒng)”。
2. 依次點(diǎn)擊菜單欄“視圖→代碼”命令,進(jìn)入vba代碼編寫(xiě)窗口,編寫(xiě)如下代碼:
private sub 打印學(xué)生證書(shū)_click()
dim strformname as string
strformname="打印預(yù)覽面板"
' 打開(kāi)打印預(yù)覽面板
docmd.openform strformname, , , , , acdialog
end sub
private sub 關(guān)閉當(dāng)前窗口_click()
dim strdocname as string
strdocname = "證書(shū)信息"
' 關(guān)閉“主切換面板”窗體。
docmd.close
' 設(shè)置焦點(diǎn)到數(shù)據(jù)庫(kù)窗口;選擇“證書(shū)信息”表。
docmd.selectobject actable, strdocname, true
end sub
private sub 退出管理系統(tǒng)_click()
' 退出 microsoft access.
docmd.quit
end sub
設(shè)置啟動(dòng)時(shí)顯示主切換面板
依次點(diǎn)擊菜單欄“工具→啟動(dòng)”命令,打開(kāi)“啟動(dòng)”設(shè)置窗口,在“顯示窗體→頁(yè)”選項(xiàng)下選擇主切換面板,并取消“顯示數(shù)據(jù)庫(kù)窗口”,這樣在下一次打開(kāi)此access數(shù)據(jù)庫(kù)時(shí),就會(huì)自動(dòng)顯示主切換面板窗體。讀者也可根據(jù)自己的需要決定是否取消菜單欄和快捷菜單欄,如果取消以后又要顯示它們,可以在打開(kāi)access數(shù)據(jù)庫(kù)時(shí)按住shift鍵。
至此,技能證書(shū)打印系統(tǒng)開(kāi)發(fā)完畢。本系統(tǒng)在windows 2000 server sp4、microsoft office access 2003下調(diào)試通過(guò),感興趣的讀者可到作者的網(wǎng)站下載(http://www.cqie.net/opus/)。
注冊(cè)會(huì)員,創(chuàng)建你的web開(kāi)發(fā)資料庫(kù),
新聞熱點(diǎn)
疑難解答
圖片精選