用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)_第1頁
用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)_第2頁
用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)_第3頁
用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)_第4頁
用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE4用VB編寫一個(gè)簡(jiǎn)單的圖書管理系統(tǒng)Srl2011009(學(xué)號(hào))石二遼(姓名)指導(dǎo)教師徐哲鑫【摘要】筆者采用VisualBasic6.0為開發(fā)工具,設(shè)計(jì)一款具備友好的圖形用戶界面、簡(jiǎn)便操作的圖書管理系統(tǒng)。充分利用計(jì)算機(jī)功能實(shí)現(xiàn)讀者管理、書籍管理、借還書籍管理等信息的自動(dòng)化控制,將使圖書管理員從繁雜、重復(fù)的勞作中解放出來?!娟P(guān)鍵詞】圖書;面向?qū)ο?;軟件工?概述1.1開發(fā)背景用計(jì)算機(jī)管理圖書館里一切信息是一種計(jì)算機(jī)應(yīng)用技術(shù)的創(chuàng)新,在計(jì)算機(jī)還未普及之前圖書管理都是由圖書管理人員手工記帳的方式來操作的.現(xiàn)在一般的圖書館都是采用計(jì)算機(jī)作為工具,使用實(shí)用的圖書管理程序來幫助圖書館管理員進(jìn)行更有效的圖書管理。1.2圖書管理系統(tǒng)產(chǎn)生的背景圖書管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于臺(tái)數(shù)據(jù)庫的建立和維護(hù)要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于前端應(yīng)用程序則要求應(yīng)用程序具備功能完備、友好的圖形用戶界面、便捷使用等特點(diǎn)[1]。1.3系統(tǒng)功能要求的分析開發(fā)本系統(tǒng)的總體任務(wù)是實(shí)現(xiàn)圖書管理系統(tǒng)的系統(tǒng)化和自動(dòng)化,幫助圖書管理員更好更高效地完成圖書管理工作,本系統(tǒng)要完成的功能主要有:書籍管理部分:圖書類別管理和圖書信息管理。其中,書籍類別管理包括添加書籍類別、修改書籍類別、刪除書籍類別等;書籍信息管理包括書籍信息的添加、修改、查詢、刪除等。讀者管理部分:讀者類別管理和讀者信息管理,讀者類別管理包括讀者類別添加、修改、刪除等;讀者信息包括讀者添加讀者信息、修改讀者信息、查詢讀者信息、刪除讀者信息等。借閱管理部分:借書信息管理和還書信息管理,借書信息管理、還書信息管理均包括其信息的添加、修改、查詢等。系統(tǒng)管理部分:添加管理員,修改密碼,退出系統(tǒng)。2開發(fā)環(huán)境及實(shí)現(xiàn)技術(shù)介紹2.1開發(fā)軟件介紹由于我的工作單位是一所中心小學(xué),有大量的書籍,讀者有學(xué)生、老師,于是本人想設(shè)計(jì)一款實(shí)用的圖書管理系統(tǒng),方便學(xué)校圖書管理員工作,增強(qiáng)圖書借閱力度,良好地管理書籍及其借閱信息。2.2模塊設(shè)計(jì)[2]書籍管理部分實(shí)現(xiàn)對(duì)書籍類別、書籍信息的添加、修改、刪除等操作。讀者管理部分實(shí)現(xiàn)對(duì)讀者類別、讀者信息的添加、修改、刪除等操作。借閱管理部分實(shí)現(xiàn)對(duì)借書信息、還書信息的添加、修改、查詢等操作。系統(tǒng)管理部分實(shí)現(xiàn)超級(jí)用戶對(duì)普通用戶的用戶名和密碼對(duì)注冊(cè)、修改等操作。2.3程序預(yù)覽運(yùn)行本系統(tǒng)程序,首先出現(xiàn)登錄界面(圖2),輸入正確用戶名及密碼后進(jìn)入主窗體(圖3),主窗體上的主菜單欄有:書籍管理、讀者管理、借閱管理、系統(tǒng)設(shè)置及幫助。圖2圖32.3.1書籍管理功能“書籍管理”菜單下有兩個(gè)一級(jí)菜單:“書籍信息管理”和“書籍類別管理”。具體操作如下:1.“書籍類別管理”下有三個(gè)子菜單:“新增”、“修改”、“刪除”。單擊“新增”菜單,打開“新增書籍類別”窗體(圖4)。單擊“修改”或“刪除”,都會(huì)打開“書籍類別信息管理”窗體(圖5)。圖4圖52.“書籍信息管理”下有四個(gè)子菜單:“新增圖書”、“修改書籍信息”、“刪除書籍信息”、“查詢書籍信息”。單擊“新增圖書”菜單,打開“新增書籍”窗體(圖6)。單擊“修改”或“刪除”,都會(huì)打開“書籍信息管理”窗體(圖7)。單擊“查詢書籍信息”菜單,打開“查詢圖書”窗體(圖8)圖14圖152.單擊“還書管理”,打開“還書”窗體(圖16)。圖162.3.4系統(tǒng)“系統(tǒng)管理”菜單下有3個(gè)子菜單,分別是“添加管理員”、“修改密鑰”和“退出系統(tǒng)”。單擊“添加管理員”子菜單,打開“添加管理員”窗體(圖17),單擊“修改密鑰”子菜單,打開“修改密碼”窗體(圖18),單擊“退出系統(tǒng)”,備份數(shù)據(jù)并退出本系統(tǒng)。圖17圖182.3.5單擊“幫助”菜單,打開系統(tǒng)信息窗體(圖1),點(diǎn)擊系統(tǒng)信息窗體任何一處,關(guān)閉該信息窗體,返回主窗體。圖12.4數(shù)據(jù)庫設(shè)計(jì)數(shù)據(jù)庫名為sj.mdb,在庫中設(shè)計(jì)六張表,它們分別為dzlb(讀者類別表)、dzxx(讀者信息表)、jyxx(借閱信息表)、sjxx(書籍信息表)、sjlb(書籍類別表)、sys(系統(tǒng)管理表)。2.4.1讀者類別表,表名為dzlb,字段名稱有讀者類別名稱、讀者借書數(shù)量、借書期限及有限期限,設(shè)置“讀者類別名稱”為主鍵,是必填字段,不允許空值。2.4.2讀者信息表:設(shè)置“讀者編號(hào)”為主鍵,“讀者編號(hào)”、“讀者姓名”為必填字段,不允許空值。2.4.3借閱信息表:2.4.4書籍信息表:設(shè)置“圖書編號(hào)”為主鍵,“圖書編號(hào)”、“書籍名稱”為必填字段,不允許空值。2.4.5圖書類別表:2.4.6系統(tǒng)管理表:2.4.7數(shù)據(jù)庫連接方式選擇Visualbasic6.0連接數(shù)據(jù)庫的主要方式有以下幾種方式:一是用data控件進(jìn)行數(shù)據(jù)庫鏈接,二是利用adodc(ADODataControl)進(jìn)行數(shù)據(jù)庫鏈接。三是:利用DataEnvironment進(jìn)行數(shù)據(jù)庫鏈接,四是利用ADO(ActiveXDataObjects)進(jìn)行編程。利用DAO對(duì)數(shù)據(jù)庫進(jìn)行操縱[3]:在visualbasic中提供了兩種與jet數(shù)據(jù)引擎接口的方法:data控件與數(shù)據(jù)訪問對(duì)象(DAO)DAO是databaseobject的英文縮寫,要訪問數(shù)據(jù)庫一方面數(shù)據(jù)庫要提供訪問接口,另一方面要在編程環(huán)境中有對(duì)數(shù)據(jù)庫的支持.DAO模型是設(shè)計(jì)關(guān)系數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的對(duì)象類的集合.他們提供了管理關(guān)系型數(shù)據(jù)庫系統(tǒng)所需要的全部操作屬性和方法,這其中包括建立數(shù)據(jù)庫,定義表,字段和建立表間關(guān)系,定位和查詢數(shù)據(jù)庫等.關(guān)系數(shù)據(jù)庫介紹[4]:關(guān)系數(shù)據(jù)庫是目前各類數(shù)據(jù)庫中最重要、最流行的數(shù)據(jù)庫,他應(yīng)用數(shù)學(xué)方法來處理數(shù)據(jù)庫數(shù)據(jù),是目前使用最廣泛的數(shù)據(jù)庫系統(tǒng)。20世紀(jì)70年代以后開發(fā)的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品幾乎都是基于關(guān)系的。在數(shù)據(jù)庫發(fā)展的歷史上,最重要的成就就是關(guān)系模型。

關(guān)系數(shù)據(jù)庫系統(tǒng)與非關(guān)系數(shù)據(jù)庫系統(tǒng)的區(qū)別是:關(guān)系系統(tǒng)只有“表“這一種數(shù)據(jù)結(jié)構(gòu);而非關(guān)系數(shù)據(jù)庫系統(tǒng)還有其他數(shù)據(jù)結(jié)構(gòu),對(duì)這些數(shù)據(jù)結(jié)構(gòu)有其他的操作。結(jié)構(gòu)化查詢語言SQL(StructuredQueryLanguage)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,其功能包括查詢、操縱、定義和控制四個(gè)方面,是一個(gè)通用的、功能極強(qiáng)的關(guān)系數(shù)據(jù)庫語言。目前已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。Microsoft

Access介紹:使用

Microsoft

Access,可以在單一的數(shù)據(jù)庫文件中管理所有的信息。在這個(gè)文件中,用戶可以將自己的數(shù)據(jù)分別保存在各自獨(dú)立的存儲(chǔ)空間中,這些空間稱作表;可以使用聯(lián)機(jī)窗體來查看、添加及更新表中的數(shù)據(jù);使用查詢來查找并檢索所要的數(shù)據(jù);也可以使用報(bào)表以特定的版面布置來分析及打印數(shù)據(jù)。如果要保存數(shù)據(jù),請(qǐng)為每一種類型的信息創(chuàng)建一個(gè)表。如果要從查詢、窗體或報(bào)表中的多個(gè)表中將數(shù)據(jù)合并在一起,就要定義各個(gè)表之間的關(guān)系。如果要搜索并檢索符合指定條件的數(shù)據(jù),包括來自多個(gè)表中的數(shù)據(jù),就要?jiǎng)?chuàng)建查詢。查詢的同時(shí)也可以更新或刪除多條記錄,并對(duì)數(shù)據(jù)執(zhí)行內(nèi)嵌或自定義的計(jì)算。如果要簡(jiǎn)單地直接在某個(gè)表中查看、輸入及更改數(shù)據(jù),請(qǐng)創(chuàng)建一個(gè)窗體。在打開一個(gè)窗體時(shí),Microsoft

Access

將從一個(gè)或多個(gè)表中檢索數(shù)據(jù),并使用用戶在“窗體向?qū)А边x擇的版面布局或所創(chuàng)建的版面布局,將窗體顯示在屏幕上。如果要分析數(shù)據(jù)或?qū)?shù)據(jù)以特定的方式打印出來,請(qǐng)創(chuàng)建一個(gè)報(bào)表。例如,可以打印一份將數(shù)據(jù)分組并計(jì)算數(shù)據(jù)總和的報(bào)表,也可以打印另一份帶有各種數(shù)據(jù)格式的打印郵件標(biāo)簽的報(bào)表。2.5系統(tǒng)代碼[5]2.5.12.5.1.1添加管理員菜單PrivateSubaddadmin_Click()addadminf.ShowEndSub2.5.1.2添加讀者類別菜單PrivateSubadddzlb_Click()Adddzlbf.ShowEndSub2.5.1.3添加讀者信息菜單PrivateSubadddzxxf_Click()Adddzxxf.ShowEndSub2.5.1.4添加還書信息菜單PrivateSubaddhs_Click()hsf.ShowEndSub2.5.1.5添加借書信息菜單PrivateSubaddjs_Click()Jsf.ShowEndSub2.5.1.6添加圖書類別菜單PrivateSubaddlb_Click()addtslb.ShowEndSub2.5.1.7查詢讀者信息菜單PrivateSubcxdzxx_Click()cxdzxxf.ShowEndSub2.5.1.8查詢借書信息菜單PrivateSubcxjs_Click()cxjsxxf.ShowEndSub2.5.1.9查詢書籍信息菜單PrivateSubcxsj_Click()cxsjf.ShowEndSub2.5.1.10刪除讀者類別菜單PrivateSubDeldzlb_Click()dzlbxxf.ShowEndSub2.5.1.11刪除讀者信息菜單PrivateSubDeldzxx_Click()dzxxglf.ShowEndSub2.5.1.12刪除書籍類別菜單PrivateSubdellb_Click()sjlbxxf.ShowEndSub2.5.1.13幫助菜單PrivateSubhlep_Click()frmSplash.ShowEndSub2.5.1.14退出系統(tǒng)菜單PrivateSubUnload_Click()endEndSub2.5.1.15修改讀者類別菜單PrivateSubXgdzlb_Click()dzlbxxf.ShowEndSub2.5.1.16修改讀者信息菜單PrivateSubxgdzxx_Click()dzxxglf.ShowEndSub2.5.1.17修改書籍類別菜單PrivateSubxglb_Click()sjlbxxf.ShowEndSub2.5.1.18修改用戶密碼菜單PrivateSubxgmm_Click()xgmmf.ShowEndSub2.5.1.19修改書籍信息菜單PrivateSubxgts_Click()sjxxf.ShowEndSub2.5.1.20新增圖書信息菜單PrivateSubxzts_Click()addtsf.ShowEndSub2.5.2添加圖書類別代碼:PrivateSubCommand1_Click()DimSq1AsStringDimrs_addAsNewADODB.RecordsetSql="select*fromsjlbwhere類別名稱='"&Text1.Text&"'"rs_add.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfTrim(Text1.Text)=""ThenMsgBox"圖書類別不能為空",vbOKOnly+vbExclamation,"注意"Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"圖書編號(hào)不能為空",vbOKOnly+vbExclamation,"注意"Text2.SetFocusExitSubEndIfIfrs_add.EOF=TrueThenrs_add.AddNewrs_add.Fields(0)=Trim(Text2.Text)rs_add.Fields(1)=Trim(Text1.Text)rs_add.UpdateMsgBox"成功地添加"&Text1.Text&"這一圖書類別",vbOKOnly,"恭喜"rs_add.CloseElseMsgBox""&Text1.Text&"這一圖書類別已存在",vbOKOnly+vbExclamation,"圖書類別不能重復(fù)"rs_add.CloseEndIfText1.SetFocusText1.Text=""Text2.Text=""EndSubPrivateSubCommand2_Click()UnloadMeEndSub2.5.3修改圖書類別:修改圖書類別代碼:OptionExplicitDimMyjlAsNewADODB.RecordsetPrivateSubForm_Load()DimSq1AsStringOnErrorGoToloaderrorSq1="select*fromsjlb"Myjl.CursorLocation=adUseClientMyjl.OpenSq1,Sjk,adOpenKeyset,adLockPessimisticCmdcancel.Enabled=FalseCmdupdate.Enabled=FalseDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MyjlExitSubloaderror:MsgBoxErr.DescriptionEndSubPrivateSubCmdadd_Click()Dg.AllowAddNew=TrueDg.AllowUpdate=TrueCmdadd.Enabled=FalseCmdupdate.Enabled=TrueEndSubPrivateSubCmdadd_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Cmdadd.Caption="點(diǎn)擊此處也可以添加"Cmdadd.Width=3000EndSubPrivateSubCmdcancel_Click()Myjl.CancelUpdateDg.RefreshDg.AllowAddNew=FalseDg.AllowUpdate=FalseCmdxg.Enabled=TrueCmddel.Enabled=TrueCmdcancel.Enabled=FalseCmdupdate.Enabled=FalseEndSubPrivateSubCmddel_Click()DimSrlAsStringOnErrorGoTodelerrorSrl=MsgBox("確定要?jiǎng)h除嗎?",vbYesNo)IfSrl=vbYesThenDg.AllowDelete=TrueMyjl.DeleteMyjl.UpdateDg.RefreshElseExitSubEndIfdelerror:MsgBoxErr.DescriptionEndSubPrivateSubCmdupdate_Click()IfNotIsNull(Dg.Bookmark)ThenMyjl.UpdateCmddel.Enabled=TrueCmdxg.Enabled=TrueCmdcancel.Enabled=FalseCmdupdate.Enabled=FalseDg.AllowUpdate=FalseMsgBox"修改成功",vbOKOnly+vbExclamation,"恭喜成功"EndIfCmdadd.Width=1550Cmdadd.Caption="高級(jí)"Cmdadd.Enabled=TrueEndSubPrivateSubCmdxg_Click()DimSrlAsStringOnErrorGoToxgCmddel.Enabled=FalseCmdxg.Enabled=FalseCmdupdate.Enabled=TrueCmdcancel.Enabled=TrueDg.AllowUpdate=Truexg:IfErr.Number<>0ThenMsgBoxErr.DescriptionEndIfEndSubPrivateSubForm_Unload(CancelAsInteger)SetDg.DataSource=NothingMyjl.CloseEndSub2.5.4添加讀者類別界面:PrivateSubCommand1_Click()DimSrlAsStringDimMybookAsNewADODB.RecordsetIfTrim(Text1.Text)=""ThenMsgBox"讀者類別名稱不能為空",vbOKOnly+vbExclamation,"注意"Text1.SetFocusExitSubEndIfIfTrim(Text2.Text)=""ThenMsgBox"借書數(shù)量不能為空",vbOKOnly+vbExclamation,"注意"Text2.SetFocusExitSubEndIfIfTrim(Text3.Text)=""ThenMsgBox"借書期限不能為空",vbOKOnly+vbExclamation,"注意"Text3.SetFocusExitSubEndIfIfTrim(Text4.Text)=""ThenMsgBox"有效期限不能為空",vbOKOnly+vbExclamation,"注意"Text4.SetFocusExitSubEndIfOnErrorGoToCwSrl="select*fromdzlbwhere讀者類別名稱='"&Text1.Text&"'"Mybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticIfMybook.EOFThenMybook.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&"這一讀者類別",vbOKOnly+vbExclamation,"添加成功!"Mybook.CloseElseMsgBox"讀者類別名稱為"&Text1.Text&"重復(fù)",vbOKOnly+vbExclamation,"注意重復(fù)"Text1.SetFocusText1.Text=""Mybook.CloseExitSubEndIfCw:MsgBoxErr.DescriptionEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubForm_Load()DimSq1AsString'定義一個(gè)字符串變量DimMyjlAsNewADODB.Recordset'定義一個(gè)Recordset對(duì)象變量EndSub2.5.5查詢讀者信息代碼:PrivateSubForm_Load()DimSq1AsString'定義一個(gè)字符串變量DimMyjlAsNewADODB.Recordset'定義一個(gè)Recordset對(duì)象變量Sq1="select*fromdzlb"Myjl.OpenSq1,Sjk,adOpenKeyset,adLockPessimisticDoWhileNotMyjl.EOFCombo1.AddItemMyjl.Fields(0)Myjl.MoveNextLoopCombo1.ListIndex=0Myjl.CloseEndSubPrivateSubCommand1_Click()DimSrlAsString'定義一個(gè)字符串變量DimMybookAsNewADODB.Recordset'定義一個(gè)Recordset對(duì)象變量IfCheck1.Value=vbCheckedThenSrl="讀者編號(hào)='"&Trim(Text1.Text&"")&"'"EndIfIfCheck2.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="讀者姓名='"&Trim(Text2.Text&"")&"'"ElseSrl=Srl&"and讀者編號(hào)='"&Trim(Text2.Text&"")&"'"EndIfEndIfIfCheck3.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="讀者類別='"&Trim(Combo1.Text&"")&"'"ElseSrl=Srl&"and讀者類別='"&Trim(Combo1.Text&"")&"'"EndIfEndIfIfSrl=""ThenMsgBox"請(qǐng)選擇一種查詢依據(jù)",vbOKOnly+vbExclamation,"查詢方式"ExitSubEndIfSrl="select*fromdzxxwhere"&SrlMybook.CursorLocation=adUseClientMybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MybookEndSubPrivateSubCommand2_Click()UnloadMeEndSub2.5.6圖書借閱管理模塊代碼:2.5.PrivateSubForm_Load()’窗體加載時(shí)就書籍類別加載到列表框中。DimSq1AsString'定義一個(gè)字符串變量DimMyjlAsNewADODB.Recordset'定義一個(gè)Recordset對(duì)象變量Sq1="select*fromsjlb"Myjl.OpenSq1,Sjk,adOpenKeyset,adLockPessimisticDoWhileNotMyjl.EOFCombo1.AddItemMyjl.Fields(1)Myjl.MoveNextLoopCombo1.ListIndex=0Myjl.CloseEndSubPrivateSubCommand1_Click()’查詢命令按鈕代碼DimSrlAsString'定義一個(gè)字符串變量DimMybookAsNewADODB.Recordset'定義一個(gè)Recordset對(duì)象變量IfCheck1.Value=vbCheckedThenSrl="書籍名稱='"&Trim(Text1.Text&"")&"'"EndIfIfCheck2.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="圖書編號(hào)='"&Trim(Text2.Text&"")&"'"ElseSrl=Srl&"and圖書編號(hào)='"&Trim(Text2.Text&"")&"'"EndIfEndIfIfCheck3.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="作者='"&Trim(Text3.Text&"")&"'"ElseSrl=Srl&"and作者='"&Trim(Text3.Text&"")&"'"EndIfEndIfIfCheck4.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="出版社='"&Trim(Text4.Text&"")&"'"ElseSrl=Srl&"and出版社='"&Trim(Text4.Text&"")&"'"EndIfEndIfIfCheck5.Value=vbCheckedThenIfTrim(Srl)=""ThenSrl="類別='"&Trim(Combo1.Text&"")&"'"ElseSrl=Srl&"and類別='"&Trim(Combo1.Text&"")&"'"EndIfEndIfIfSrl=""ThenMsgBox"請(qǐng)選擇一種查詢依據(jù)",vbOKOnly+vbExclamation,"查詢方式"ExitSubEndIfSrl="select*fromsjxxwhere"&SrlMybook.CursorLocation=adUseClientMybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MybookEndSub為了獲取表格某一單元格值,為DataGrid控件DG添加如下代碼:PrivateSubDg_RowColChange(LastRowAsVariant,ByValLastColAsInteger)OnErrorGoToCwPand=Dg.Columns(7).CellValue(Dg.Bookmark)Bookunm=Dg.Columns(0).CellValue(Dg.Bookmark)’Pand和Bookunm是公共模塊中定義的一個(gè)公共變量,Bookunm用來記錄表格中某一書籍的圖書編號(hào),便于在借書窗體中再次調(diào)用。ExitSubCw:MsgBoxErr.DescriptionEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubCommand3_Click()’這是“借這本書”命令按鈕,如果條件滿足,就進(jìn)入借書窗體了。IfTrim(Bookunm)=""ThenMsgBox"請(qǐng)選擇要借閱的書籍",vbOKOnly+vbExclamation,"選擇書籍"ExitSubEndIfIfTrim(Pand)="是"ThenMsgBox"此書已經(jīng)被借出,請(qǐng)選擇其它書籍",vbOKOnly+vbExclamation,"選擇書籍"ExitSubEndIfUnloadMeJsf.ShowEndSub2.5.6.2借書OptionExplicitDimLbAsString'該讀者類別DimQxAsString'該讀者可借書的期限D(zhuǎn)imYjslAsString'該讀者已借書的數(shù)量DimMaxmAsString'該讀者借書量的限制‘由在查詢書籍的窗體滿足了可以借書的條件進(jìn)入此借書窗體,根據(jù)此書的圖書編號(hào),在本窗體加載時(shí)就加載了書籍的信息和讀者列表。PrivateSubForm_Load()DimMybookAsNewADODB.RecordsetDimMydzAsNewADODB.RecordsetDimSrlAsStringDimSqlAsStringSrl="select*fromsjxxwhere圖書編號(hào)='"&Bookunm&"'"Mybook.OpenSrl,Sjk,adOpenKeyset,adLockPessimisticLabel8.Caption=Mybook.Fields(0)Label9.Caption=Mybook.Fields(1)Label10.Caption=Mybook.Fields(2)Label11.Caption=Mybook.Fields(3)Label12.Caption=Mybook.Fields(4)Label13.Caption=Mybook.Fields(5)Label14.Caption=Mybook.Fields(6)Sql="select*fromdzxx"Mydz.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfNotMydz.EOFThenDoWhileNotMydz.EOFCombo1.AddItemMydz.Fields(0)Combo2.AddItemMydz.Fields(1)Mydz.MoveNextLoopCombo1.ListIndex=0ElseMsgBox"請(qǐng)先登記讀者",vbOKOnly+vbExclamation,"注意"ExitSubEndIfMybook.CloseMydz.CloseEndSub‘由于讀者編號(hào)與讀者姓名是一一對(duì)應(yīng)的,必須對(duì)用來加載這兩個(gè)信息的兩個(gè)列表框編寫如下代碼:PrivateSubCombo1_Click()Combo2.ListIndex=Combo1.ListIndexEndSubPrivateSubCombo2_Click()Combo1.ListIndex=Combo2.ListIndexEndSubPrivateSubCommand1_Click()’這是借書的“確定”按鈕DimMyjlAsNewADODB.RecordsetDimSqlAsStringSql="select*fromdzxxwhere讀者編號(hào)='"&Combo1.Text&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticLb=Myjl.Fields(3)Yjsl=Myjl.Fields(8)Myjl.CloseSql="select*fromdzlbwhere讀者類別名稱='"&Lb&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticQx=Myjl.Fields(2)Maxm=Myjl.Fields(1)Myjl.CloseIfYjsl>=MaxmThenMsgBox"該讀者借書數(shù)額已滿!",vbOKOnly+vbExclamationExitSubEndIf‘以上條件滿足了,就將新借書信息添加到借閱信息數(shù)據(jù)庫中,代碼如下:Sql="select*fromjyxx"Myjl.OpenSql,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)Myjl.UpdateMyjl.Close‘同時(shí),將此書在書籍信息(sjxx)表中的“是否被借出”設(shè)置為“是”。Sql="select*fromsjxxwhere圖書編號(hào)='"&Bookunm&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticMyjl.Fields(7)="是"Myjl.UpdateMyjl.Close‘同時(shí)將該讀者已借書數(shù)量上加1。Sql="select*fromdzxxwhere讀者編號(hào)='"&Combo1.Text&"'"Myjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticMyjl.Fields(8)=Myjl.Fields(8)+1Myjl.UpdateMyjl.CloseMsgBox"《"&Label9.Caption&"》這本書成功地借給了讀者姓名為"&Combo2.Text&"的讀者!",vbOKOnly+vbExclamation,"借閱成功"UnloadMeEndSubPrivateSubCommand2_Click()UnloadMeEndSub2.5.6.3查詢借書窗體代碼PrivateSubCommand1_Click()DimSqlAsString'定義一個(gè)字符串變量DimMyjlAsNewADODB.Recordset'定義一個(gè)Recordset對(duì)象變量IfOption1.Value=TrueThenSql="select*fromsjxxwhere是否被借出='是'"EndIfIfOption2.Value=TrueThenSql="select*fromsjxxwhere是否被借出='否'"EndIfIfOption3.Value=TrueThenSql="select*fromjyxxwhere讀者姓名='"&dzxm.Text&"'"EndIfMyjl.CursorLocation=adUseClientMyjl.OpenSql,Sjk,adOpenKeyset,adLockPessimisticDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseSetDg.DataSource=MyjlEndSubPrivateSubCommand2_Click()UnloadMeEndSubPrivateSubOption3_Click()dzxm.Visible=TrueEndSub2.5.6.4還書窗體PrivateSubForm_Load()DimmybookAsNewADODB.RecordsetDimMydzAsNewADODB.RecordsetDimSrlAsStringDimSqlAsStringSql="select*fromdzxx"Mydz.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfNotMydz.EOFThenDoWhileNotMydz.EOFCombo1.AddItemMydz.Fields(0)Combo2.AddItemMydz.Fields(1)Mydz.MoveNextLoopEndIfMydz.CloseSql="select*fromjyxx"mybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfNotmybook.EOFThenDoWhileNotmybook.EOFCombo3.AddItemmybook.Fields(3)Combo4.AddItemmybook.Fields(4)mybook.MoveNextLoopEndIfmybook.CloseEndSubPrivateSubCombo1_Click()Combo2.ListIndex=Combo1.ListIndexEndSubPrivateSubCombo2_Click()Combo1.ListIndex=Combo2.ListIndexEndSubPrivateSubCombo3_Click()Combo4.ListIndex=Combo3.ListIndexEndSubPrivateSubCombo4_Click()Combo3.ListIndex=Combo4.ListIndexEndSubPrivateSubCommand1_Click()DimMydzAsNewADODB.RecordsetDimSqlAsStringfindform=TrueSql="select*fromjyxxwhere讀者姓名='"&Combo2.Text&"'"Mydz.CursorLocation=adUseClientMydz.OpenSql,Sjk,adOpenKeyset,adLockPessimisticSetDg.DataSource=MydzDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseEndSubPrivateSubCommand2_Click()DimmybookAsNewADODB.RecordsetDimSqlAsStringfindform=FalseSql="select*fromjyxxwhere書籍編號(hào)='"&Combo3.Text&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticSetDg.DataSource=mybookDg.AllowAddNew=FalseDg.AllowDelete=FalseDg.AllowUpdate=FalseEndSubPrivateSubCommand3_Click()DimBookAsStringDimDzAsStringDimSqlAsStringDimWAsStringDimmybookAsNewADODB.RecordsetOnErrorGoToCwBook=Dg.Columns(3).CellValue(Dg.Bookmark)Dz=Dg.Columns(1).CellValue(Dg.Bookmark)W=MsgBox("確定要還這本書嗎?",vbYesNo,"")IfW=vbYesThenSql="select*fromjyxxwhere書籍編號(hào)='"&Book&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticmybook.Deletemybook.Updatemybook.CloseSql="select*fromsjxxwhere圖書編號(hào)='"&Book&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticmybook.Fields(7)="否"mybook.Updatemybook.CloseSql="select*fromdzxxwhere讀者編號(hào)='"&Dz&"'"mybook.CursorLocation=adUseClientmybook.OpenSql,Sjk,adOpenKeyset,adLockPessimisticmybook.Fields(8)=mybook.Fields(8)-1mybook.Updatemybook.CloseIffindform=TrueThenCommand1_ClickElseCommand2_ClickEndIfMsgBox"還書成功!",vbOKOnly+vbExclamation,""Dg.AllowDelete=FalseElseExitSubEndIfCw:MsgBoxErr.DescriptionEndSubPrivateSubCommand4_Click()UnloadMeEndSub2.5.7系統(tǒng)管理2.5.7.1OptionExplicitDimcntAsInteger’用來記錄點(diǎn)擊“確定”的次數(shù)PrivateSubForm_Load()’DimConnectionStringAsStringConnectionString="provider=Microsoft.Jet.oledb.4.0;datasource=sj.mdb"Sjk.OpenConnectionString’Sjk是公用模塊中定義的一個(gè)公共變量。cnt=0EndSubPrivateSubCmdcancel_Click()EndEndSubPrivateSubcmdOK_Click()DimSqlAsStringDimrs_addAsNewADODB.RecordsetIfTrim(Text1.Text)=""ThenMsgBox"用戶名不能為空",vbOKOnly+vbExclamation,"注意"ExitSubText1.SetFocusElseSql="select*fromsyswhereUname='"&Text1.Text&"'"rs_add.OpenSql,Sjk,adOpenKeyset,adLockPessimisticIfrs_add.EOF=TrueThenMsgBox"沒"&Text1.Text&"有這個(gè)用戶",vbOKOnly+vbExclamation,""Text1.SetFocusElseIfTrim(rs_add.Fields(1))=Trim(Text2.Text)Then'Unema=Text1.Text'Uid=rs_add.Fields(2)rs_add.CloseMf.ShowUnloadMeElseMsgBox"密碼不正確",vbOKOnly+vbExclamation,"注意"Text2.SetFocusText2.Text=""EndIfEndIfEndIfcnt=cnt+1Ifcnt=3ThenUnloadMeEndIfEndSubPrivateSubcmdOK_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)cmdOK.Caption="確定登錄"‘只為增強(qiáng)動(dòng)畫效果,移動(dòng)鼠標(biāo)到cmdok按鈕上時(shí),顯示的文字由原來的“確定”變?yōu)椤按_定登錄”EndSub2.5.7PrivateSubForm_Load()DimSjkAsADODB.ConnectionDimSjAsADODB.RecordsetCombo1.AddItem"管理員"Combo1.AddItem"來賓用戶"SetSjk=New

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論