版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上用VB編寫一個簡單的圖書管理系統(tǒng)Srl(學(xué)號)石二遼(姓名)指導(dǎo)教師徐哲鑫【摘要】筆者采用Visual Basic 6.0 為開發(fā)工具,設(shè)計一款具備友好的圖形用戶界面、簡便操作的圖書管理系統(tǒng)。充分利用計算機功能實現(xiàn)讀者管理、書籍管理、借還書籍管理等信息的自動化控制,將使圖書管理員從繁雜、重復(fù)的勞作中解放出來。 【關(guān)鍵詞】圖書;面向?qū)ο?;軟件工?概述1.1開發(fā)背景用計算機管理圖書館里一切信息是一種計算機應(yīng)用技術(shù)的創(chuàng)新,在計算機還未普及之前圖書管理都是由圖書管理人員手工記帳的方式來操作的.現(xiàn)在一般的圖書館都是采用計算機作為工具,使用實用的圖書管理程序來幫助圖書館管理員進
2、行更有效的圖書管理。1.2圖書管理系統(tǒng)產(chǎn)生的背景圖書管理系統(tǒng)是典型的信息管理系統(tǒng),其開發(fā)主要包括后臺數(shù)據(jù)庫的建立和維護以及前端應(yīng)用程序的開發(fā)兩個方面。對于臺數(shù)據(jù)庫的建立和維護要求建立起數(shù)據(jù)一致性和完整性強、數(shù)據(jù)安全性好的庫。而對于前端應(yīng)用程序則要求應(yīng)用程序具備功能完備、友好的圖形用戶界面、便捷使用等特點1。 1.3 系統(tǒng)功能要求的分析開發(fā)本系統(tǒng)的總體任務(wù)是實現(xiàn)圖書管理系統(tǒng)的系統(tǒng)化和自動化,幫助圖書管理員更好更高效地完成圖書管理工作,本系統(tǒng)要完成的功能主要有:書籍管理部分:圖書類別管理和圖書信息管理。其中,書籍類別管理包括添加書籍類別、修改書籍類別、刪除書籍類別等;書籍信息管理包括書籍信息的添加
3、、修改、查詢、刪除等。讀者管理部分:讀者類別管理和讀者信息管理,讀者類別管理包括讀者類別添加、修改、刪除等;讀者信息包括讀者添加讀者信息、修改讀者信息、查詢讀者信息、刪除讀者信息等。借閱管理部分:借書信息管理和還書信息管理,借書信息管理、還書信息管理均包括其信息的添加、修改、查詢等。系統(tǒng)管理部分:添加管理員,修改密碼,退出系統(tǒng)。2開發(fā)環(huán)境及實現(xiàn)技術(shù)介紹2.1開發(fā)軟件介紹由于我的工作單位是一所中心小學(xué),有大量的書籍,讀者有學(xué)生、老師,于是本人想設(shè)計一款實用的圖書管理系統(tǒng),方便學(xué)校圖書管理員工作,增強圖書借閱力度,良好地管理書籍及其借閱信息。22模塊設(shè)計2書籍管理部分實現(xiàn)對書籍類別、書籍信息的添加
4、、修改、刪除等操作。讀者管理部分實現(xiàn)對讀者類別、讀者信息的添加、修改、刪除等操作。借閱管理部分實現(xiàn)對借書信息、還書信息的添加、修改、查詢等操作。系統(tǒng)管理部分實現(xiàn)超級用戶對普通用戶的用戶名和密碼對注冊、修改等操作。23程序預(yù)覽運行本系統(tǒng)程序,首先出現(xiàn)登錄界面(圖2),輸入正確用戶名及密碼后進入主窗體(圖3),主窗體上的主菜單欄有:書籍管理、讀者管理、借閱管理、系統(tǒng)設(shè)置及幫助。圖2 圖32.3.1書籍管理功能“書籍管理”菜單下有兩個一級菜單:“書籍信息管理”和“書籍類別管理”。具體操作如下:1“書籍類別管理”下有三個子菜單:“新增”、“修改”、“刪除”。單擊“新增”菜單,打開“新增書籍類別”窗體(
5、圖4)。單擊“修改”或“刪除”,都會打開“書籍類別信息管理”窗體(圖5)。 圖4 圖52“書籍信息管理”下有四個子菜單:“新增圖書”、“修改書籍信息”、“刪除書籍信息”、“查詢書籍信息”。單擊“新增圖書”菜單,打開“新增書籍”窗體(圖6)。單擊“修改”或“刪除”,都會打開“書籍信息管理”窗體(圖7)。單擊“查詢書籍信息”菜單,打開“查詢圖書”窗體(圖8)圖6圖7圖82.3.2讀者管理功能“讀者管理”菜單下有兩個一級菜單:“讀者類別管理”和“讀者信息管理”。1“讀者類別管理”下有3個子菜單:“添加讀者類別”、“修改讀者類別”、“刪除讀者類別”。單擊“添加讀者類別”菜單,打開“添加讀者類別”窗體(
6、圖9);單擊“修改讀者類別”和“刪除讀者類別”菜單,都會打開“讀者類別管理”窗體(圖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)信息窗體
8、(圖1),點擊系統(tǒng)信息窗體任何一處,關(guān)閉該信息窗體,返回主窗體。圖12.4數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫名為sj.mdb,在庫中設(shè)計六張表,它們分別為dzlb(讀者類別表)、dzxx(讀者信息表)、jyxx(借閱信息表)、sjxx(書籍信息表)、sjlb(書籍類別表)、sys(系統(tǒng)管理表)。2.4.1讀者類別表,表名為dzlb,字段名稱有讀者類別名稱、讀者借書數(shù)量、借書期限及有限期限,設(shè)置“讀者類別名稱”為主鍵,是必填字段,不允許空值。2.4.2讀者信息表: 設(shè)置“讀者編號”為主鍵,“讀者編號”、“讀者姓名”為必填字段,不允許空值。2.4.3 借閱信息表:2.4.4書籍信息表: 設(shè)置“圖書編號”為主鍵,“圖
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的英文縮寫,要
10、訪問數(shù)據(jù)庫一方面數(shù)據(jù)庫要提供訪問接口,另一方面要在編程環(huán)境中有對數(shù)據(jù)庫的支持. DAO模型是設(shè)計關(guān)系數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)的對象類的集合.他們提供了管理關(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)
11、還有其他數(shù)據(jù)結(jié)構(gòu),對這些數(shù)據(jù)結(jié)構(gòu)有其他的操作。結(jié)構(gòu)化查詢語言SQL(Structured Query Language)是一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,其功能包括查詢、操縱、定義和控制四個方面,是一個通用的、功能極強的關(guān)系數(shù)據(jù)庫語言。目前已成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。Microsoft Access介紹:使用 Microsoft Access,可以在單一的數(shù)據(jù)庫文件中管理所有的信息。在這個文件中,用戶可以將自己的數(shù)據(jù)分別保存在各自獨立的存儲空間中,這些空間稱作表;可以使用聯(lián)機窗體來查看、添加及更新表中的數(shù)據(jù);使用查詢來查找并檢索所要的數(shù)據(jù);也可以使用報表以特
12、定的版面布置來分析及打印數(shù)據(jù)。 如果要保存數(shù)據(jù),請為每一種類型的信息創(chuàng)建一個表。如果要從查詢、窗體或報表中的多個表中將數(shù)據(jù)合并在一起,就要定義各個表之間的關(guān)系。 如果要搜索并檢索符合指定條件的數(shù)據(jù),包括來自多個表中的數(shù)據(jù),就要創(chuàng)建查詢。查詢的同時也可以更新或刪除多條記錄,并對數(shù)據(jù)執(zhí)行內(nèi)嵌或自定義的計算。 如果要簡單地直接在某個表中查看、輸入及更改數(shù)據(jù),請創(chuàng)建一個窗體。在打開一個窗體時,Microsoft Access 將從一個或多個表中檢索數(shù)據(jù),并使用用戶在“窗體向?qū)А边x擇的版面布局或所創(chuàng)建的版面布局,將窗體顯示在屏幕上。 如果要分析數(shù)據(jù)或?qū)?shù)據(jù)以特定的方式打印出來,請創(chuàng)建
13、一個報表。例如,可以打印一份將數(shù)據(jù)分組并計算數(shù)據(jù)總和的報表,也可以打印另一份帶有各種數(shù)據(jù)格式的打印郵件標(biāo)簽的報表。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_Clic
14、k()hsf.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.ShowE
15、nd Sub2.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
16、.1.15修改讀者類別菜單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 T
18、rim(Text1.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 Th
19、en rs_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 + vbExc
20、lamation, "圖書類別不能重復(fù)" 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 loaderrorSq
21、1 = "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.DescriptionE
22、nd SubPrivate 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 Cmdcan
23、cel_Click()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 = vbYe
24、s ThenDg.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 = FalseM
25、sgBox "修改成功", 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 = TrueD
26、g.AllowUpdate = 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) = ""
27、ThenMsgBox "讀者類別名稱不能為空", vbOKOnly + vbExclamation, "注意"Text1.SetFocusExit SubEnd IfIf Trim(Text2.Text) = "" ThenMsgBox "借書數(shù)量不能為空", vbOKOnly + vbExclamation, "注意"Text2.SetFocusExit SubEnd IfIf Trim(Text3.Text) = "" ThenMsgBox "借書期限不能為空&
28、quot;, 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
30、.Text & "這一讀者類別 ", vbOKOnly + vbExclamation, "添加成功!"Mybook.CloseElseMsgBox "讀者類別名稱為" & Text1.Text & " 重復(fù)", vbOKOnly + vbExclamation, "注意重復(fù)"Text1.SetFocusText1.Text = ""Mybook.CloseExit SubEnd IfCw:MsgBox Err.DescriptionEnd SubPr
31、ivate 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
32、* from 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.Va
33、lue = vbChecked ThenSrl = "讀者編號='" & Trim(Text1.Text & "") & "'"End IfIf Check2.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "讀者姓名='" & Trim(Text2.Text & "") & "'" Else Srl = Srl &
34、; "and 讀者編號='" & Trim(Text2.Text & "") & "'" End IfEnd IfIf Check3.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "讀者類別='" & Trim(Combo1.Text & "") & "'" Else Srl = Srl & "and
35、讀者類別='" & Trim(Combo1.Text & "") & "'" End IfEnd IfIf Srl = "" ThenMsgBox "請選擇一種查詢依據(jù)", vbOKOnly + vbExclamation, "查詢方式"Exit SubEnd IfSrl = "select * from dzxx where " & SrlMybook.CursorLocation = adUseClientMybo
36、ok.Open 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
37、Myjl As 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 = "圖書編號='" & Tr
39、im(Text2.Text & "") & "'" Else Srl = Srl & "and 圖書編號='" & Trim(Text2.Text & "") & "'" End IfEnd IfIf Check3.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "作者='" & Trim(Text3.Text &
40、amp; "") & "'" Else Srl = Srl & "and 作者='" & Trim(Text3.Text & "") & "'" End IfEnd IfIf Check4.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "出版社='" & Trim(Text4.Text & ""
41、;) & "'" Else Srl = Srl & "and 出版社='" & Trim(Text4.Text & "") & "'" End IfEnd IfIf Check5.Value = vbChecked Then If Trim(Srl) = "" Then Srl = "類別='" & Trim(Combo1.Text & "") & "
42、'" Else Srl = Srl & "and 類別='" & Trim(Combo1.Text & "") & "'" End IfEnd IfIf Srl = "" ThenMsgBox "請選擇一種查詢依據(jù)", vbOKOnly + vbExclamation, "查詢方式"Exit SubEnd IfSrl = "select * from sjxx where " & S
43、rlMybook.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 Er
44、ror GoTo CwPand = Dg.Columns(7).CellValue(Dg.Bookmark)Bookunm = Dg.Columns(0).CellValue(Dg.Bookmark) Pand 和Bookunm是公共模塊中定義的一個公共變量,Bookunm用來記錄表格中某一書籍的圖書編號,便于在借書窗體中再次調(diào)用。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借書窗體代碼Optio
46、n ExplicitDim Lb As String '該讀者類別Dim Qx As String '該讀者可借書的期限D(zhuǎn)im 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
47、 Sql As 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.
48、Caption = 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 L
49、oop Combo1.ListIndex = 0 Else MsgBox "請先登記讀者", vbOKOnly + vbExclamation, "注意" Exit Sub End If Mybook.Close Mydz.Close End Sub由于讀者編號與讀者姓名是一一對應(yīng)的,必須對用來加載這兩個信息的兩個列表框編寫如下代碼:Private Sub Combo1_Click()Combo2.ListIndex = Combo1.ListIndexEnd SubPrivate Sub Combo2_Click()Combo1.ListIndex =
50、 Combo2.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)Myj
51、l.CloseSql = "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
53、, Date)Myjl.UpdateMyjl.Close同時,將此書在書籍信息(sjxx)表中的“是否被借出”設(shè)置為“是”。Sql = "select * from sjxx where 圖書編號='" & Bookunm & "'"Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimisticMyjl.Fields(7) = "是"Myjl.UpdateMyjl.Close同時將該讀者已借書數(shù)量上加1。Sql = "select * from dzxx
54、 where 讀者編號='" & Combo1.Text & "'"Myjl.Open Sql, Sjk, adOpenKeyset, adLockPessimisticMyjl.Fields(8) = Myjl.Fields(8) + 1Myjl.UpdateMyjl.CloseMsgBox "" & Label9.Caption & " 這本書成功地借給了讀者姓名為 " & Combo2.Text & " 的讀者!", vbOKOnly
55、+ vbExclamation, "借閱成功"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 是否被借出='是&
56、#39;"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, adOpenKeys
57、et, adLockPessimisticDg.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
58、ADODB.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 * fr
59、om jyxx "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 ADOD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- BIM工程師-全國《BIM應(yīng)用技能資格》名師預(yù)測試卷3
- 二年級下冊數(shù)學(xué)導(dǎo)學(xué)案
- 花園裙樓幕墻工程施工方案
- 農(nóng)村電網(wǎng)改造升級的技術(shù)路徑
- 老式鐘表走時不準(zhǔn)校正修復(fù)
- 海藻葉片形態(tài)特征與光合作用
- 新視野大學(xué)英語3第三版 大學(xué)英語視聽說3答案
- 高一化學(xué)教案:專題第二單元第二課時化學(xué)反應(yīng)中的熱量變化(二)
- 2024高中物理第一章電場章末質(zhì)量評估一含解析粵教版選修3-1
- 2024高中語文第1單元論語蚜第1課天下有道丘不與易也訓(xùn)練含解析新人教版選修先秦諸子蚜
- 供銷合同(完整版)
- 二零二五年企業(yè)存單質(zhì)押擔(dān)保貸款合同樣本3篇
- 鍋爐安裝、改造、維修質(zhì)量保證手冊
- (2024)河南省公務(wù)員考試《行測》真題及答案解析
- 1000只肉羊養(yǎng)殖基地建設(shè)項目可行性研究報告
- 《勞保用品安全培訓(xùn)》課件
- 2024院感年終總結(jié)報告
- 高一化學(xué)《活潑的金屬單質(zhì)-鈉》分層練習(xí)含答案解析
- 04S206自動噴水與水噴霧滅火設(shè)施安裝圖集
- 《小學(xué)數(shù)學(xué)課堂教學(xué)中創(chuàng)設(shè)情境的實踐研究》開題報告
- 期末 (試題) -2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
評論
0/150
提交評論