版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、用VB編寫一個簡單的圖書管理系統(tǒng)Srl2011009(學號)石二遼(姓名)指導教師徐哲鑫【摘要】筆者采用Visual Basic 6.0 為開發(fā)工具,設計一款具備友好的圖形用戶界面、簡便操作的圖書管理系統(tǒng)。充分利用計算機功能實現(xiàn)讀者管理、書籍管理、借還書籍管理等信息的自動化控制,將使圖書管理員從繁雜、重復的勞作中解放出來。 【關鍵詞】圖書;面向對象;軟件工程1概述1.1開發(fā)背景用計算機管理圖書館里一切信息是一種計算機應用技術的創(chuàng)新,在計算機還未普及之前圖書管理都是由圖書管理人員手工記帳的方式來操作的.現(xiàn)在一般的圖書館都是采用計算機作為工具,使用實用的圖書管理程序來幫助圖書館管理員進行更有效的圖
2、書管理。1.2圖書管理系統(tǒng)產(chǎn)生的背景圖書管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于臺數(shù)據(jù)庫的建立和維護要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于前端應用程序則要求應用程序具備功能完備、友好的圖形用戶界面、便捷使用等特點1。 1.3 系統(tǒng)功能要求的分析開發(fā)本系統(tǒng)的總體任務是實現(xiàn)圖書管理系統(tǒng)的系統(tǒng)化和自動化,幫助圖書管理員更好更高效地完成圖書管理工作,本系統(tǒng)要完成的功能主要有:書籍管理部分:圖書類別管理和圖書信息管理。其中,書籍類別管理包括添加書籍類別、修改書籍類別、刪除書籍類別等;書籍信息管理包括書籍信息的添加、修改、查詢
3、、刪除等。讀者管理部分:讀者類別管理和讀者信息管理,讀者類別管理包括讀者類別添加、修改、刪除等;讀者信息包括讀者添加讀者信息、修改讀者信息、查詢讀者信息、刪除讀者信息等。借閱管理部分:借書信息管理和還書信息管理,借書信息管理、還書信息管理均包括其信息的添加、修改、查詢等。系統(tǒng)管理部分:添加管理員,修改密碼,退出系統(tǒng)。2開發(fā)環(huán)境及實現(xiàn)技術介紹2.1開發(fā)軟件介紹由于我的工作單位是一所中心小學,有大量的書籍,讀者有學生、老師,于是本人想設計一款實用的圖書管理系統(tǒng),方便學校圖書管理員工作,增強圖書借閱力度,良好地管理書籍及其借閱信息。22模塊設計2書籍管理部分實現(xiàn)對書籍類別、書籍信息的添加、修改、刪除
4、等操作。讀者管理部分實現(xiàn)對讀者類別、讀者信息的添加、修改、刪除等操作。借閱管理部分實現(xiàn)對借書信息、還書信息的添加、修改、查詢等操作。系統(tǒng)管理部分實現(xiàn)超級用戶對普通用戶的用戶名和密碼對注冊、修改等操作。23程序預覽運行本系統(tǒng)程序,首先出現(xiàn)登錄界面(圖2),輸入正確用戶名及密碼后進入主窗體(圖3),主窗體上的主菜單欄有:書籍管理、讀者管理、借閱管理、系統(tǒng)設置及幫助。圖2 圖32.3.1書籍管理功能“書籍管理”菜單下有兩個一級菜單:“書籍信息管理”和“書籍類別管理”。具體操作如下:1“書籍類別管理”下有三個子菜單:“新增”、“修改”、“刪除”。單擊“新增”菜單,打開“新增書籍類別”窗體(圖4)。單擊
5、“修改”或“刪除”,都會打開“書籍類別信息管理”窗體(圖5)。 圖4 圖52“書籍信息管理”下有四個子菜單:“新增圖書”、“修改書籍信息”、“刪除書籍信息”、“查詢書籍信息”。單擊“新增圖書”菜單,打開“新增書籍”窗體(圖6)。單擊“修改”或“刪除”,都會打開“書籍信息管理”窗體(圖7)。單擊“查詢書籍信息”菜單,打開“查詢圖書”窗體(圖8)圖6圖7圖82.3.2讀者管理功能“讀者管理”菜單下有兩個一級菜單:“讀者類別管理”和“讀者信息管理”。1“讀者類別管理”下有3個子菜單:“添加讀者類別”、“修改讀者類別”、“刪除讀者類別”。單擊“添加讀者類別”菜單,打開“添加讀者類別”窗體(圖9);單擊
6、“修改讀者類別”和“刪除讀者類別”菜單,都會打開“讀者類別管理”窗體(圖10)。 圖9 圖102“讀者信息管理”菜單下有4個子菜單:“添加讀者信息”、“修改讀者信息”、“刪除讀者信息”和“查詢讀者信息”。單擊“添加讀者信息”菜單,打開“添加讀者信息”窗體(圖11),單擊“修改讀者信息”和“刪除讀者信息”菜單,都會打開“讀者信息管理”窗體(圖12),單擊“查詢讀者信息”菜單,打開“查詢讀者信息”窗體(圖13)。 圖11 圖12 圖132.3.3圖書借閱管理功能“借閱管理”菜單下有2個一級菜單:“借書管理”和“還書管理”。1“借書管理”菜單下有2個子菜單:“添加借書信息”和“查詢借書信息”。單擊“
7、添加借書信息”先打開的是“查詢圖書”窗體(圖8),找到需要借閱的圖書后,單擊“借這本書按鈕”,打開“借書”窗體(圖14);單擊“查詢借書信息”菜單,打開“查詢借書信息”窗體(圖15)。 圖14 圖15 2.單擊“還書管理”,打開“還書”窗體(圖16)。 圖162.3.4系統(tǒng)管理功能“系統(tǒng)管理”菜單下有3個子菜單,分別是“添加管理員”、“修改密鑰”和“退出系統(tǒng)”。單擊“添加管理員”子菜單,打開“添加管理員”窗體(圖17),單擊“修改密鑰”子菜單,打開“修改密碼”窗體(圖18),單擊“退出系統(tǒng)”,備份數(shù)據(jù)并退出本系統(tǒng)。 圖17 圖182.3.5幫助菜單單擊“幫助”菜單,打開系統(tǒng)信息窗體(圖1),點
8、擊系統(tǒng)信息窗體任何一處,關閉該信息窗體,返回主窗體。圖12.4數(shù)據(jù)庫設計數(shù)據(jù)庫名為sj.mdb,在庫中設計六張表,它們分別為dzlb(讀者類別表)、dzxx(讀者信息表)、jyxx(借閱信息表)、sjxx(書籍信息表)、sjlb(書籍類別表)、sys(系統(tǒng)管理表)。2.4.1讀者類別表,表名為dzlb,字段名稱有讀者類別名稱、讀者借書數(shù)量、借書期限及有限期限,設置“讀者類別名稱”為主鍵,是必填字段,不允許空值。2.4.2讀者信息表: 設置“讀者編號”為主鍵,“讀者編號”、“讀者姓名”為必填字段,不允許空值。2.4.3 借閱信息表:2.4.4書籍信息表: 設置“圖書編號”為主鍵,“圖書編號”、“
9、書籍名稱”為必填字段,不允許空值。2.4.5圖書類別表:2.4.6系統(tǒng)管理表:2.4.7數(shù)據(jù)庫連接方式選擇Visual basic6.0連接數(shù)據(jù)庫的主要方式有以下幾種方式:一是用data控件進行數(shù)據(jù)庫鏈接,二是利用adodc(ADO Data Control)進行數(shù)據(jù)庫鏈接 。三是:利用DataEnvironment進行數(shù)據(jù)庫鏈接,四是利用ADO(ActiveX Data Objects)進行編程。利用DAO對數(shù)據(jù)庫進行操縱3:在visual basic 中提供了兩種與jet數(shù)據(jù)引擎接口的方法:data控件與數(shù)據(jù)訪問對象(DAO)DAO是database object的英文縮寫,要訪問數(shù)據(jù)庫一
10、方面數(shù)據(jù)庫要提供訪問接口,另一方面要在編程環(huán)境中有對數(shù)據(jù)庫的支持. DAO模型是設計關系數(shù)據(jù)庫系統(tǒng)結構的對象類的集合.他們提供了管理關系型數(shù)據(jù)庫系統(tǒng)所需要的全部操作屬性和方法,這其中包括建立數(shù)據(jù)庫,定義表,字段和建立表間關系,定位和查詢數(shù)據(jù)庫等.關系數(shù)據(jù)庫介紹4: 關系數(shù)據(jù)庫是目前各類數(shù)據(jù)庫中最重要、最流行的數(shù)據(jù)庫,他應用數(shù)學方法來處理數(shù)據(jù)庫數(shù)據(jù),是目前使用最廣泛的數(shù)據(jù)庫系統(tǒng)。20世紀70年代以后開發(fā)的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品幾乎都是基于關系的。在數(shù)據(jù)庫發(fā)展的歷史上,最重要的成就就是關系模型。 關系數(shù)據(jù)庫系統(tǒng)與非關系數(shù)據(jù)庫系統(tǒng)的區(qū)別是:關系系統(tǒng)只有“表“這一種數(shù)據(jù)結構;而非關系數(shù)據(jù)庫系統(tǒng)還有其他數(shù)據(jù)
11、結構,對這些數(shù)據(jù)結構有其他的操作。結構化查詢語言SQL(Structured Query Language)是一種介于關系代數(shù)與關系演算之間的語言,其功能包括查詢、操縱、定義和控制四個方面,是一個通用的、功能極強的關系數(shù)據(jù)庫語言。目前已成為關系數(shù)據(jù)庫的標準語言。Microsoft Access介紹:使用 Microsoft Access,可以在單一的數(shù)據(jù)庫文件中管理所有的信息。在這個文件中,用戶可以將自己的數(shù)據(jù)分別保存在各自獨立的存儲空間中,這些空間稱作表;可以使用聯(lián)機窗體來查看、添加及更新表中的數(shù)據(jù);使用查詢來查找并檢索所要的數(shù)據(jù);也可以使用報表以特定的版面布置
12、來分析及打印數(shù)據(jù)。 如果要保存數(shù)據(jù),請為每一種類型的信息創(chuàng)建一個表。如果要從查詢、窗體或報表中的多個表中將數(shù)據(jù)合并在一起,就要定義各個表之間的關系。 如果要搜索并檢索符合指定條件的數(shù)據(jù),包括來自多個表中的數(shù)據(jù),就要創(chuàng)建查詢。查詢的同時也可以更新或刪除多條記錄,并對數(shù)據(jù)執(zhí)行內嵌或自定義的計算。 如果要簡單地直接在某個表中查看、輸入及更改數(shù)據(jù),請創(chuàng)建一個窗體。在打開一個窗體時,Microsoft Access 將從一個或多個表中檢索數(shù)據(jù),并使用用戶在“窗體向導”選擇的版面布局或所創(chuàng)建的版面布局,將窗體顯示在屏幕上。 如果要分析數(shù)據(jù)或將數(shù)據(jù)以特定的方式打印出來,請創(chuàng)建一個報表。例
13、如,可以打印一份將數(shù)據(jù)分組并計算數(shù)據(jù)總和的報表,也可以打印另一份帶有各種數(shù)據(jù)格式的打印郵件標簽的報表。25系統(tǒng)代碼52.5.1主界面代碼:2.5.1.1添加管理員菜單Private Sub addadmin_Click()addadminf.ShowEnd Sub2.5.1.2添加讀者類別菜單Private Sub adddzlb_Click()Adddzlbf.ShowEnd Sub2.5.1.3添加讀者信息菜單Private Sub adddzxxf_Click()Adddzxxf.ShowEnd Sub2.5.1.4添加還書信息菜單Private Sub addhs_Click()hsf
14、.ShowEnd Sub2.5.1.5添加借書信息菜單Private Sub addjs_Click()Jsf.ShowEnd Sub2.5.1.6添加圖書類別菜單Private Sub addlb_Click()addtslb.ShowEnd Sub2.5.1.7查詢讀者信息菜單Private Sub cxdzxx_Click()cxdzxxf.ShowEnd Sub2.5.1.8查詢借書信息菜單Private Sub cxjs_Click()cxjsxxf.ShowEnd Sub2.5.1.9查詢書籍信息菜單Private Sub cxsj_Click()cxsjf.ShowEnd Sub
15、2.5.1.10刪除讀者類別菜單Private Sub Deldzlb_Click()dzlbxxf.ShowEnd Sub2.5.1.11刪除讀者信息菜單Private Sub Deldzxx_Click()dzxxglf.ShowEnd Sub2.5.1.12刪除書籍類別菜單Private Sub dellb_Click()sjlbxxf.ShowEnd Sub2.5.1.13幫助菜單Private Sub hlep_Click()frmSplash.ShowEnd Sub2.5.1.14退出系統(tǒng)菜單Private Sub Unload_Click()endEnd Sub2.5.1.15修
16、改讀者類別菜單Private Sub Xgdzlb_Click()dzlbxxf.ShowEnd Sub2.5.1.16修改讀者信息菜單Private Sub xgdzxx_Click()dzxxglf.ShowEnd Sub2.5.1.17修改書籍類別菜單Private Sub xglb_Click()sjlbxxf.ShowEnd Sub2.5.1.18修改用戶密碼菜單Private Sub xgmm_Click()xgmmf.ShowEnd Sub2.5.1.19修改書籍信息菜單Private Sub xgts_Click()sjxxf.ShowEnd Sub2.5.1.20新增圖書信息
17、菜單Private Sub xzts_Click()addtsf.ShowEnd Sub2.5.2添加圖書類別添加圖書類別代碼:Private Sub Command1_Click()Dim Sq1 As StringDim rs_add As New ADODB.RecordsetSql = "select * from sjlb where 類別名稱='" & Text1.Text & "'" rs_add.Open Sql, Sjk, adOpenKeyset, adLockPessimisticIf Trim(Te
18、xt1.Text) = "" Then MsgBox "圖書類別不能為空", vbOKOnly + vbExclamation, "注意" Text1.SetFocus Exit Sub End If If Trim(Text2.Text) = "" Then MsgBox "圖書編號不能為空", vbOKOnly + vbExclamation, "注意" Text2.SetFocus Exit SubEnd If If rs_add.EOF = True Then rs_
19、add.AddNew rs_add.Fields(0) = Trim(Text2.Text) rs_add.Fields(1) = Trim(Text1.Text) rs_add.Update MsgBox "成功地添加 " & Text1.Text & " 這一圖書類別", vbOKOnly, "恭喜" rs_add.Close Else MsgBox " " & Text1.Text & " 這一圖書類別已存在", vbOKOnly + vbExclamati
20、on, "圖書類別不能重復" rs_add.Close End If Text1.SetFocus Text1.Text = "" Text2.Text = ""End SubPrivate Sub Command2_Click()Unload MeEnd Sub2.5.3修改圖書類別:修改圖書類別代碼:Option ExplicitDim Myjl As New ADODB.RecordsetPrivate Sub Form_Load()Dim Sq1 As StringOn Error GoTo loaderrorSq1 = &q
21、uot;select * from sjlb "Myjl.CursorLocation = adUseClientMyjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimisticCmdcancel.Enabled = FalseCmdupdate.Enabled = FalseDg.AllowAddNew = FalseDg.AllowDelete = FalseDg.AllowUpdate = FalseSet Dg.DataSource = MyjlExit Subloaderror:MsgBox Err.DescriptionEnd Sub
22、Private Sub Cmdadd_Click()Dg.AllowAddNew = TrueDg.AllowUpdate = TrueCmdadd.Enabled = FalseCmdupdate.Enabled = TrueEnd SubPrivate Sub Cmdadd_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Cmdadd.Caption = "點擊此處也可以添加"Cmdadd.Width = 3000End SubPrivate Sub Cmdcancel_Cl
23、ick()Myjl.CancelUpdateDg.RefreshDg.AllowAddNew = FalseDg.AllowUpdate = FalseCmdxg.Enabled = TrueCmddel.Enabled = TrueCmdcancel.Enabled = FalseCmdupdate.Enabled = FalseEnd SubPrivate Sub Cmddel_Click()Dim Srl As StringOn Error GoTo delerrorSrl = MsgBox("確定要刪除嗎?", vbYesNo)If Srl = vbYes Then
24、Dg.AllowDelete = TrueMyjl.DeleteMyjl.UpdateDg.RefreshElseExit SubEnd Ifdelerror:MsgBox Err.DescriptionEnd SubPrivate Sub Cmdupdate_Click()If Not IsNull(Dg.Bookmark) ThenMyjl.UpdateCmddel.Enabled = TrueCmdxg.Enabled = TrueCmdcancel.Enabled = FalseCmdupdate.Enabled = FalseDg.AllowUpdate = FalseMsgBox
25、"修改成功", vbOKOnly + vbExclamation, "恭喜成功"End IfCmdadd.Width = 1550Cmdadd.Caption = "高級"Cmdadd.Enabled = TrueEnd SubPrivate Sub Cmdxg_Click()Dim Srl As StringOn Error GoTo xgCmddel.Enabled = FalseCmdxg.Enabled = FalseCmdupdate.Enabled = TrueCmdcancel.Enabled = TrueDg.Allo
26、wUpdate = Truexg:If Err.Number <> 0 ThenMsgBox Err.DescriptionEnd IfEnd SubPrivate Sub Form_Unload(Cancel As Integer)Set Dg.DataSource = NothingMyjl.CloseEnd Sub2.5.4添加讀者類別界面:Private Sub Command1_Click()Dim Srl As StringDim Mybook As New ADODB.RecordsetIf Trim(Text1.Text) = "" ThenMs
27、gBox "讀者類別名稱不能為空", vbOKOnly + vbExclamation, "注意"Text1.SetFocusExit SubEnd IfIf Trim(Text2.Text) = "" ThenMsgBox "借書數(shù)量不能為空", vbOKOnly + vbExclamation, "注意"Text2.SetFocusExit SubEnd IfIf Trim(Text3.Text) = "" ThenMsgBox "借書期限不能為空",
28、 vbOKOnly + vbExclamation, "注意"Text3.SetFocusExit SubEnd IfIf Trim(Text4.Text) = "" ThenMsgBox "有效期限不能為空", vbOKOnly + vbExclamation, "注意"Text4.SetFocusExit SubEnd IfOn Error GoTo CwSrl = "select * from dzlb where 讀者類別名稱='" & Text1.Text &
29、"'" Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimisticIf Mybook.EOF ThenMybook.AddNewMybook.Fields(0) = Trim(Text1.Text)Mybook.Fields(1) = Trim(Text2.Text)Mybook.Fields(2) = Trim(Text3.Text)Mybook.Fields(3) = Trim(Text4.Text)Mybook.UpdateMsgBox " 您已經(jīng)成功添加" & Text1.Text
30、& "這一讀者類別 ", vbOKOnly + vbExclamation, "添加成功!"Mybook.CloseElseMsgBox "讀者類別名稱為" & Text1.Text & " 重復", vbOKOnly + vbExclamation, "注意重復"Text1.SetFocusText1.Text = ""Mybook.CloseExit SubEnd IfCw:MsgBox Err.DescriptionEnd SubPrivate
31、Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim Sq1 As String '定義一個字符串變量Dim Myjl As New ADODB.Recordset '定義一個Recordset對象變量End Sub2.5.5查詢讀者信息代碼:Private Sub Form_Load()Dim Sq1 As String '定義一個字符串變量Dim Myjl As New ADODB.Recordset '定義一個Recordset對象變量Sq1 = "select * from
32、 dzlb"Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimisticDo While Not Myjl.EOFCombo1.AddItem Myjl.Fields(0)Myjl.MoveNextLoopCombo1.ListIndex = 0Myjl.CloseEnd SubPrivate Sub Command1_Click()Dim Srl As String '定義一個字符串變量Dim Mybook As New ADODB.Recordset '定義一個Recordset對象變量If Check1.Value =
33、vbChecked ThenSrl = "讀者編號='" & Trim(Text1.Text & "") & "'"End IfIf Check2.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "讀者姓名='" & Trim(Text2.Text & "") & "'" Else Srl = Srl & &quo
34、t;and 讀者編號='" & Trim(Text2.Text & "") & "'" End IfEnd IfIf Check3.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "讀者類別='" & Trim(Combo1.Text & "") & "'" Else Srl = Srl & "and 讀者類別=&
35、#39;" & Trim(Combo1.Text & "") & "'" End IfEnd IfIf Srl = "" ThenMsgBox "請選擇一種查詢依據(jù)", vbOKOnly + vbExclamation, "查詢方式"Exit SubEnd IfSrl = "select * from dzxx where " & SrlMybook.CursorLocation = adUseClientMybook.Ope
36、n Srl, Sjk, adOpenKeyset, adLockPessimisticDg.AllowAddNew = FalseDg.AllowDelete = FalseDg.AllowUpdate = FalseSet Dg.DataSource = MybookEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub2.5.6圖書借閱管理模塊代碼:2.5.6.1查詢書籍窗體代碼Private Sub Form_Load()窗體加載時就書籍類別加載到列表框中。Dim Sq1 As String '定義一個字符串變量Dim Myjl A
37、s New ADODB.Recordset '定義一個Recordset對象變量Sq1 = "select * from sjlb"Myjl.Open Sq1, Sjk, adOpenKeyset, adLockPessimisticDo While Not Myjl.EOFCombo1.AddItem Myjl.Fields(1)Myjl.MoveNextLoopCombo1.ListIndex = 0Myjl.CloseEnd SubPrivate Sub Command1_Click()查詢命令按鈕代碼Dim Srl As String '定義一個字符
38、串變量Dim Mybook As New ADODB.Recordset '定義一個Recordset對象變量If Check1.Value = vbChecked ThenSrl = "書籍名稱='" & Trim(Text1.Text & "") & "'"End IfIf Check2.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "圖書編號='" & Trim(Tex
39、t2.Text & "") & "'" Else Srl = Srl & "and 圖書編號='" & Trim(Text2.Text & "") & "'" End IfEnd IfIf Check3.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "作者='" & Trim(Text3.Text & &
40、quot;") & "'" Else Srl = Srl & "and 作者='" & Trim(Text3.Text & "") & "'" End IfEnd IfIf Check4.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "出版社='" & Trim(Text4.Text & "") &am
41、p; "'" Else Srl = Srl & "and 出版社='" & Trim(Text4.Text & "") & "'" End IfEnd IfIf Check5.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "類別='" & Trim(Combo1.Text & "") & "'&
42、quot; Else Srl = Srl & "and 類別='" & Trim(Combo1.Text & "") & "'" End IfEnd IfIf Srl = "" ThenMsgBox "請選擇一種查詢依據(jù)", vbOKOnly + vbExclamation, "查詢方式"Exit SubEnd IfSrl = "select * from sjxx where " & SrlMybo
43、ok.CursorLocation = adUseClientMybook.Open Srl, Sjk, adOpenKeyset, adLockPessimisticDg.AllowAddNew = FalseDg.AllowDelete = FalseDg.AllowUpdate = FalseSet Dg.DataSource = MybookEnd Sub為了獲取表格某一單元格值,為DataGrid控件DG添加如下代碼:Private Sub Dg_RowColChange(LastRow As Variant, ByVal LastCol As Integer)On Error Go
44、To CwPand = Dg.Columns(7).CellValue(Dg.Bookmark)Bookunm = Dg.Columns(0).CellValue(Dg.Bookmark) Pand 和Bookunm是公共模塊中定義的一個公共變量,Bookunm用來記錄表格中某一書籍的圖書編號,便于在借書窗體中再次調用。Exit SubCw:MsgBox Err.DescriptionEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Command3_Click()這是“借這本書”命令按鈕,如果條件滿足,就進入借書窗體
45、了。If Trim(Bookunm) = "" Then MsgBox "請選擇要借閱的書籍", vbOKOnly + vbExclamation, "選擇書籍"Exit SubEnd IfIf Trim(Pand) = "是" Then MsgBox "此書已經(jīng)被借出,請選擇其它書籍", vbOKOnly + vbExclamation, "選擇書籍"Exit SubEnd IfUnload MeJsf.ShowEnd Sub2.5.6.2借書窗體代碼Option Expl
46、icitDim Lb As String '該讀者類別Dim Qx As String '該讀者可借書的期限Dim Yjsl As String '該讀者已借書的數(shù)量Dim Maxm As String '該讀者借書量的限制由在查詢書籍的窗體滿足了可以借書的條件進入此借書窗體,根據(jù)此書的圖書編號,在本窗體加載時就加載了書籍的信息和讀者列表。Private Sub Form_Load()Dim Mybook As New ADODB.RecordsetDim Mydz As New ADODB.RecordsetDim Srl As StringDim Sql A
47、s StringSrl = "select * from sjxx where 圖書編號='" & Bookunm & "'"Mybook.Open Srl, Sjk, adOpenKeyset, adLockPessimisticLabel8.Caption = Mybook.Fields(0)Label9.Caption = Mybook.Fields(1)Label10.Caption = Mybook.Fields(2)Label11.Caption = Mybook.Fields(3)Label12.Captio
48、n = Mybook.Fields(4)Label13.Caption = Mybook.Fields(5)Label14.Caption = Mybook.Fields(6)Sql = "select * from dzxx "Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimisticIf Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0) Combo2.AddItem Mydz.Fields(1) Mydz.MoveNext Loop Co
49、mbo1.ListIndex = 0 Else MsgBox "請先登記讀者", vbOKOnly + vbExclamation, "注意" Exit Sub End If Mybook.Close Mydz.Close End Sub由于讀者編號與讀者姓名是一一對應的,必須對用來加載這兩個信息的兩個列表框編寫如下代碼:Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndexEnd SubPrivate Sub Combo2_Click()Combo1.ListIndex = Combo
50、2.ListIndexEnd SubPrivate Sub Command1_Click()這是借書的“確定”按鈕Dim Myjl As New ADODB.RecordsetDim Sql As StringSql = "select * from dzxx where 讀者編號='" & Combo1.Text & "'"Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimisticLb = Myjl.Fields(3)Yjsl = Myjl.Fields(8)Myjl.Clos
51、eSql = "select * from dzlb where 讀者類別名稱='" & Lb & "'"Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimisticQx = Myjl.Fields(2)Maxm = Myjl.Fields(1)Myjl.CloseIf Yjsl >= Maxm ThenMsgBox "該讀者借書數(shù)額已滿!", vbOKOnly + vbExclamationExit SubEnd If以上條件滿足了,就將新借書信息添加到
52、借閱信息數(shù)據(jù)庫中,代碼如下:Sql = "select * from jyxx"Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimisticMyjl.AddNewMyjl.Fields(1) = Combo1.TextMyjl.Fields(2) = Combo2.TextMyjl.Fields(3) = Label8.CaptionMyjl.Fields(4) = Label9.CaptionMyjl.Fields(5) = DateMyjl.Fields(6) = DateAdd("Ww", Qx, Date
53、)Myjl.UpdateMyjl.Close同時,將此書在書籍信息(sjxx)表中的“是否被借出”設置為“是”。Sql = "select * from sjxx where 圖書編號='" & Bookunm & "'"Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimisticMyjl.Fields(7) = "是"Myjl.UpdateMyjl.Close同時將該讀者已借書數(shù)量上加1。Sql = "select * from dzxx where
54、 讀者編號='" & Combo1.Text & "'"Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimisticMyjl.Fields(8) = Myjl.Fields(8) + 1Myjl.UpdateMyjl.CloseMsgBox "" & Label9.Caption & " 這本書成功地借給了讀者姓名為 " & Combo2.Text & " 的讀者!", vbOKOnly + vbEx
55、clamation, "借閱成功"Unload MeEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub2.5.6.3查詢借書窗體代碼Private Sub Command1_Click()Dim Sql As String '定義一個字符串變量Dim Myjl As New ADODB.Recordset '定義一個Recordset對象變量If Option1.Value = True ThenSql = "select * from sjxx where 是否被借出='是'&q
56、uot;End IfIf Option2.Value = True ThenSql = "select * from sjxx where 是否被借出='否'"End IfIf Option3.Value = True ThenSql = "select * from jyxx where 讀者姓名='" & dzxm.Text & "'"End IfMyjl.CursorLocation = adUseClientMyjl.Open Sql, Sjk, adOpenKeyset, ad
57、LockPessimisticDg.AllowAddNew = FalseDg.AllowDelete = FalseDg.AllowUpdate = FalseSet Dg.DataSource = MyjlEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Option3_Click()dzxm.Visible = TrueEnd Sub2.5.6.4還書窗體代碼Private Sub Form_Load()Dim mybook As New ADODB.RecordsetDim Mydz As New ADODB.
58、RecordsetDim Srl As StringDim Sql As StringSql = "select * from dzxx "Mydz.Open Sql, Sjk, adOpenKeyset, adLockPessimisticIf Not Mydz.EOF Then Do While Not Mydz.EOF Combo1.AddItem Mydz.Fields(0) Combo2.AddItem Mydz.Fields(1) Mydz.MoveNext Loop End If Mydz.Close Sql = "select * from jyx
59、x "mybook.Open Sql, Sjk, adOpenKeyset, adLockPessimisticIf Not mybook.EOF Then Do While Not mybook.EOF Combo3.AddItem mybook.Fields(3) Combo4.AddItem mybook.Fields(4) mybook.MoveNext Loop End If mybook.Close End SubPrivate Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndexEnd SubPrivate Sub Combo2_Click()Combo1.ListIndex = Combo2.ListIndexEnd SubPrivate Sub Combo3_Click()Combo4.ListIndex = Combo3.ListIndexEnd SubPrivate Sub Combo4_Click()Combo3.ListIndex = Combo4.ListIndexEnd SubPrivate Sub Command1_Click()Dim Mydz As New ADODB.Records
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年版醫(yī)療設備研發(fā)與銷售合同
- 2024年虛擬現(xiàn)實技術投資入股協(xié)議樣本3篇
- 2024年企業(yè)代發(fā)工資與員工股票期權計劃協(xié)議3篇
- 2024年股票典當質押:信貸與擔保協(xié)議3篇
- 2024年跨足數(shù)字貨幣領域的技術合作合同服務內容
- 2024年紅土鎳礦倉儲與運輸一體化協(xié)議
- 2024年表演藝術指導聘請協(xié)議3篇
- 2024年股權轉讓與買賣合同
- 2024年簡化版:智能交通信號管理系統(tǒng)研發(fā)與實施的合同
- 2024政府機關臨時辦公場所租賃合同范本下載2篇
- 常用工具的正確使用
- 管材管件供貨計劃、運輸方案及保障措施及售后服務
- (2024年)腸梗阻完整版課件
- 國際視野開拓全球
- T-CARM 002-2023 康復醫(yī)院建設標準
- 工程機械租賃服務方案及保障措施范本
- 2024年不良資產(chǎn)處置相關項目投資計劃書
- 腸道支架植入術培訓課件
- 數(shù)字政府建設行業(yè)分析
- 關于調整縣人民醫(yī)院預算管理委員會成員的通知
- 《工程計量》課件
評論
0/150
提交評論