考慮到時間上的緊迫性,還有用戶操作的易用性,以後上網查詢所需數據庫的兼容性,因此決定選用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
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