

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 數(shù)據(jù)庫課程設(shè)計 設(shè)計報告</p><p> 課程名稱:圖書館管理系統(tǒng)</p><p> 項目背景(寫出項目系統(tǒng)提出背景和必要)</p><p> 現(xiàn)在,科學(xué)技術(shù)的飛速發(fā)展把人類社會推向了一個嶄新的時代——信息時代。這已是無可爭議的事實;信息對社會經(jīng)濟發(fā)展的巨大推動作用,使其與物質(zhì)能源一起并列為現(xiàn)代社會的三大支柱,這已在全社會達到共識。
2、圖書管理系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要,所以圖書管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來
3、越重要的作用。 作為計算機應(yīng)用的一部分,使用計算機對學(xué)生檔案信息進行管理,具有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學(xué)生檔案管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。圖書管理系統(tǒng)的建立更進一步的方便了師生對圖書的借閱。</p><p><b> 2 、系統(tǒng)功能</b><
4、/p><p> 本系統(tǒng)為我校圖書館管理系統(tǒng),其功能由圖書館圖書館圖書管理的日常事物確定,力求提高我校師生圖書借閱工作的效率,壓縮圖書節(jié)約信息流通的成本和時間,檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長。方便圖書統(tǒng)計,借閱與報表的生成,為我校師生借閱圖書提供了便捷的服務(wù),系統(tǒng)主要完成如下功能:</p><p> 圖書基本信息管理登記,提供圖書的基本信息輸入</p>
5、<p><b> 登記學(xué)生借閱情況</b></p><p> 統(tǒng)計分析圖書借閱情況</p><p> 圖書系統(tǒng)管理流程圖:</p><p><b> 數(shù)據(jù)庫設(shè)計:</b></p><p> 本系統(tǒng)主要設(shè)計對象(實體):讀者、書</p><p> 與讀者
6、相關(guān)的信息:編號、姓名、性別、類型、出生日期、有效證件、證件號碼、聯(lián)系方式、登記日期</p><p> 與書相關(guān)的信息:編號、書名、作者、出版社、價格</p><p> 圖書的借閱是系統(tǒng)的核心行為,涉及(借期、還期)就是借閱時間</p><p> 經(jīng)過分析,系統(tǒng)E—R模型圖如下:</p><p> 將E——R模型圖轉(zhuǎn)換,得到以下以下關(guān)
7、系模式</p><p> 讀者(讀者編號、姓名、性別、類型、出生日期、有效證件、證件號碼、聯(lián)系方式、登記日期)</p><p> 書(圖書編號、書名、作者、出版社、價格)</p><p> 借閱(讀者編號、歸還編號、罰款編號、借閱編號、圖書編號)</p><p> 因為:讀者(讀者號、姓名、性別、類型、出生日期、有效證件、證件號碼、聯(lián)
8、系方式、登記日期)</p><p> 函數(shù)依賴集={讀者號 姓名,讀者號 性別,讀者號 類型,讀者號 出生日期,讀者號 有效證件,讀者號 證件號碼,讀者號 聯(lián)系方式,讀者號 登記日期}</p><p> 關(guān)系中的碼=讀者號,</p><p> 非主屬性=(姓名,性別)</p><p> 因為:每一個
9、屬性都是單一的屬性,所以達到第一范式,</p><p> 每一個非主屬性完全依賴于碼,所以達到第二范式,</p><p> 又因為:R中的每一個非主屬性不傳遞依賴于碼,所以進一步達到第三范式</p><p><b> 實驗步驟:</b></p><p> 1、啟動查詢分析器,輸入SQL語句,并執(zhí)行:</p&
10、gt;<p> Create database library</p><p> On primary</p><p> (name=圖書管理數(shù)據(jù)庫文件,</p><p> filename='d:\db\library.mdf',</p><p><b> size=5,</b>
11、</p><p> maxsize=30,</p><p> fileGrowth=2)</p><p><b> log on</b></p><p> (name=圖書管理日志文件,</p><p> filename='d:\db\library.ldf',<
12、/p><p><b> size=5,</b></p><p> maxsize=30,</p><p> fileGrowth=2)</p><p> 在查詢分析器輸入SQL語句,創(chuàng)建表,</p><p><b> SQL語言如下:</b></p>&l
13、t;p> 創(chuàng)建“讀者信息”數(shù)據(jù)表</p><p><b> SQL腳本如下:</b></p><p> CREATE TABLE [dbo].[讀者信息] ( </p><p> [編號] [varchar] (20) NOT NULL ,</p><p> [姓名] [varchar]
14、(20) NULL ,</p><p> [性別] [varchar] (8) NULL ,</p><p> [類型] [varchar] (20) NOT NULL ,</p><p> [出生日期] [smalldatetime] NULL ,</p><p> [有效證件] [varchar] (60) NULL ,</
15、p><p> [證件號碼] [varchar] (60) NULL ,</p><p> [聯(lián)系方式] [varchar] (100) NULL ,</p><p> [登記日期] [smalldatetime] NULL ,</p><p> ) ON [PRIMARY]</p><p><b> G
16、O</b></p><p> 創(chuàng)建“圖書信息”數(shù)據(jù)表</p><p><b> SQL腳本如下:</b></p><p> CREATE TABLE [dbo].[圖書信息] (</p><p> [編號] [varchar] (50) NOT NULL ,</p><p>
17、 [書名] [varchar] (200) NULL ,</p><p> [作者] [varchar] (100) NULL ,</p><p> [出版社] [varchar] (100) NULL ,</p><p> [價格] [money] (8)NULL ,</p><p> [現(xiàn)存量] [int] (4)NULL ,&l
18、t;/p><p> ) ON [PRIMARY]</p><p><b> GO</b></p><p> 創(chuàng)建“圖書借閱”數(shù)據(jù)表</p><p><b> SQL腳本如下:</b></p><p> CREATE TABLE [dbo].[圖書借閱] (</p&
19、gt;<p> [借閱編號] [int] IDENTITY (1, 1) NOT NULL ,</p><p> [圖書編號] [varchar] (50) NULL ,</p><p> [讀者編號] [varchar] (40) NULL ,</p><p> [借閱時間] [smalldatetime] (4) NULL ,</p&
20、gt;<p> [應(yīng)還時間] [smalldatetime] (4) NULL ,</p><p> [續(xù)借次數(shù)] [int] (4) NULL ,</p><p> [狀態(tài)] [varchar] (10) NULL </p><p> ) ON [PRIMARY]</p><p><b> GO</b
21、></p><p> 創(chuàng)建“圖書罰款”數(shù)據(jù)表</p><p> SQL腳本語言如下:</p><p> CREATE TABLE [dbo].[圖書罰款] (</p><p> [罰款編號] [int] IDENTITY (1, 1) NOT NULL ,</p><p> [圖書編號] [varcha
22、r] (50) NULL ,</p><p> [讀者編號] [varchar] (20) NULL ,</p><p> [罰款日期] [smalldatetime] NULL ,</p><p> [應(yīng)罰金額] [money] NULL ,</p><p> [實收金額] [money] NULL ,</p><
23、;p> [是否交款] [char] (10) NULL ,</p><p> ) ON [PRIMARY]</p><p><b> GO</b></p><p> 創(chuàng)建“圖書歸還”數(shù)據(jù)表</p><p> SQL腳本語言如下:</p><p> CREATE TABLE [db
24、o].[圖書歸還] (</p><p> [歸還編號] [int] IDENTITY (1, 1) NOT NULL ,</p><p> [圖書編號] [varchar] (50) NULL ,</p><p> [讀者編號] [varchar] (40) NULL ,</p><p> [退還押金] [money] NULL ,&
25、lt;/p><p> [歸還時間] [smalldatetime] NULL ,</p><p> [確定歸還] [text] (16) NULL </p><p> ) ON [PRIMARY]</p><p><b> GO</b></p><p> 創(chuàng)建主鍵和外鍵等表約束</p&
26、gt;<p> 在查詢分析器中通過如下代碼創(chuàng)建數(shù)據(jù)表的主鍵及外鍵等表約束</p><p> SQL腳本語言如下:</p><p> ALTER TABLE [dbo].[圖書信息] WITH NOCHECK ADD </p><p> CONSTRAINT [PK_圖書信息] PRIMARY KEY CLUSTERED </p>
27、<p><b> (</b></p><p><b> [編號]</b></p><p> ) ON [PRIMARY] </p><p><b> GO</b></p><p> ALTER TABLE [dbo].[圖書借閱] WITH NOCHEC
28、K ADD </p><p> CONSTRAINT [PK_圖書借閱] PRIMARY KEY CLUSTERED </p><p><b> (</b></p><p><b> [借閱編號]</b></p><p> ) ON [PRIMARY] </p><p
29、><b> GO</b></p><p> ALTER TABLE [dbo].[圖書歸還] WITH NOCHECK ADD </p><p> CONSTRAINT [PK_圖書歸還] PRIMARY KEY CLUSTERED </p><p><b> (</b></p><p&
30、gt;<b> [歸還編號]</b></p><p> ) ON [PRIMARY] </p><p><b> GO</b></p><p> ALTER TABLE [dbo].[圖書罰款] WITH NOCHECK ADD </p><p> CONSTRAINT [PK_圖書罰款
31、] PRIMARY KEY CLUSTERED </p><p><b> (</b></p><p><b> [罰款編號]</b></p><p> ) ON [PRIMARY] </p><p><b> GO</b></p><p>
32、 ALTER TABLE [dbo].[讀者信息] WITH NOCHECK ADD </p><p> CONSTRAINT [PK_讀者信息] PRIMARY KEY CLUSTERED </p><p><b> (</b></p><p><b> [編號]</b></p><p>
33、; ) ON [PRIMARY] </p><p><b> GO</b></p><p> ALTER TABLE [dbo].[圖書借閱] ADD </p><p> CONSTRAINT [圖書借閱_圖書編號_fk] FOREIGN KEY </p><p><b> (</b>&
34、lt;/p><p><b> [圖書編號]</b></p><p> ) REFERENCES [dbo].[圖書信息] (</p><p><b> [編號]</b></p><p><b> )</b></p><p><b> GO
35、</b></p><p> ALTER TABLE [dbo].[圖書歸還] ADD </p><p> CONSTRAINT [圖書歸還_圖書編號_fk] FOREIGN KEY </p><p><b> (</b></p><p><b> [圖書編號]</b></p
36、><p> ) REFERENCES [dbo].[圖書信息] (</p><p><b> [編號]</b></p><p><b> )</b></p><p><b> GO</b></p><p> ALTER TABLE [dbo].[圖
37、書罰款] ADD </p><p> CONSTRAINT [FK_圖書罰款_讀者信息] FOREIGN KEY </p><p><b> (</b></p><p><b> [讀者編號]</b></p><p> ) REFERENCES [dbo].[讀者信息] (</p>
38、;<p><b> [編號]</b></p><p><b> ),</b></p><p> CONSTRAINT [FK_圖書罰款_圖書信息] FOREIGN KEY </p><p><b> (</b></p><p><b> [圖書
39、編號]</b></p><p> ) REFERENCES [dbo].[圖書信息] (</p><p><b> [編號]</b></p><p><b> )</b></p><p><b> GO</b></p><p><
40、;b> 得出關(guān)系圖如下</b></p><p><b> ?。?lt;/b></p><p> 輸入圖書信息表的數(shù)據(jù):</p><p> 輸入讀者信息表的數(shù)據(jù):</p><p> 輸入圖書借閱表的數(shù)據(jù):</p><p> 輸入圖書歸還表的數(shù)據(jù):</p><
41、p> 輸入圖書罰款表的數(shù)據(jù):</p><p><b> 創(chuàng)建存儲過程</b></p><p> 系統(tǒng)使用了“sf_圖書借閱”和“sf_圖書歸還”兩個存儲過程,實現(xiàn)的功能分別為借閱圖書出庫和歸還圖書入庫,產(chǎn)生罰款信息等功能。</p><p> SQL腳本語言如下:</p><p> create proc
42、sf_圖書借閱</p><p><b> as</b></p><p> begin tran …………………………..注釋:借圖書出庫,減少了圖書庫里的圖書存量</p><p> update 圖書信息 set 現(xiàn)存量 = isnull(現(xiàn)存量,0) - 1</p><p> from 圖書信息 as a
43、, 圖書借閱 as b</p><p> where a.編號=b.圖書編號 and b.狀態(tài)='新借'</p><p> ……………………………………………注釋:設(shè)置借閱狀態(tài)</p><p> update 圖書借閱 set 續(xù)借次數(shù)=0,狀態(tài)='未還'</p><p> where 狀態(tài)='
44、新借'</p><p><b> commit</b></p><p><b> GO</b></p><p> SET QUOTED_IDENTIFIER OFF </p><p><b> GO</b></p><p> SET A
45、NSI_NULLS ON </p><p><b> GO</b></p><p> SET QUOTED_IDENTIFIER ON </p><p><b> GO</b></p><p> SET ANSI_NULLS ON </p><p><b>
46、 GO</b></p><p> create proc sf_圖書歸還 @借閱編號 int, @罰款金額 money</p><p><b> as</b></p><p> begin tran……………………………………..注釋:還書入庫,增加存儲量</p><p> update 圖書信息
47、set 現(xiàn)存量 = isnull(現(xiàn)存量,0) + 1</p><p> from 圖書信息 as a, 圖書借閱 as b</p><p> where a.編號=b.圖書編號 and b.借閱編號=@借閱編號</p><p> .......................................注釋:如果罰款不是0,在圖書罰款中產(chǎn)生記錄</
48、p><p> if @罰款金額<> 0</p><p> insert into 圖書罰款(圖書編號,讀者編號,罰款日期,應(yīng)罰金額,是否交款)</p><p> select 圖書編號,讀者編號,getdate(), @罰款金額, 0</p><p> from 圖書借閱 where 借閱編號=@借閱編號</p>
49、<p> …………………….注釋:插入圖書歸還表</p><p> insert into 圖書歸還(圖書編號,讀者編號,歸還時間)</p><p> select 圖書編號,讀者編號,getdate()</p><p> from 圖書借閱 where 借閱編號=@借閱編號</p><p> …………………………………
50、….注釋:設(shè)置借閱狀態(tài)</p><p> update 圖書借閱 set 狀態(tài)='已還' where 借閱編號=@借閱編號</p><p><b> commit</b></p><p><b> GO</b></p><p> SET QUOTED_IDENTIFIER O
51、FF </p><p><b> GO</b></p><p> SET ANSI_NULLS ON </p><p><b> GO</b></p><p><b> SQL查詢語句:</b></p><p> 查詢編號為“000001”的圖
52、書的信息:</p><p> 輸入SQL語句:select *</p><p><b> From 圖書信息</b></p><p> Where 編號=’000001’</p><p><b> 查詢結(jié)果為:</b></p><p> 查詢清華大學(xué)出版社圖書的信息
53、,按圖書編號升序排序:</p><p> 輸入SQL語句:select *</p><p><b> From 圖書信息</b></p><p> Where 出版社=’清華大學(xué)出版社’</p><p> Order by編號</p><p><b> 查詢結(jié)果為:</b
54、></p><p> 查詢所有姓張的讀者:</p><p><b> 輸入SQL語句為:</b></p><p><b> select *</b></p><p> From 讀者信息</p><p> Where (姓名like ’張%’)</p&
55、gt;<p><b> 查詢結(jié)果為:</b></p><p> 還有各種查詢語句,在這里就不一一舉例了。</p><p><b> 完成結(jié)果:</b></p><p><b> 登陸界面</b></p><p><b> 讀者信息管理模塊:&l
56、t;/b></p><p><b> 圖書信息管理模塊:</b></p><p><b> 、</b></p><p> 圖書借閱信息管理模塊:</p><p><b> 、</b></p><p> 圖書歸還信息管理模塊</p&g
57、t;<p> 圖書罰款信息管理模塊</p><p><b> 創(chuàng)建工程:</b></p><p> 啟動VB6.0,在主菜單中選擇[文件]/[新建工程]命令,在彈出的[新建工程]對話框中選擇[標準EXE]命令,然后單擊[確定]按鈕。</p><p><b> 54768132</b></p>
58、;<p> 創(chuàng)建一個主窗體,命名為frmMain.frm,</p><p> ?。?)用菜單編輯器為其添加一個主菜單,布局為</p><p> 讀者管理(W) 圖書管理(X) 系統(tǒng)管理(Z)</p><p> 讀者信息CTRL+A 圖書信息CTRL+B
59、 管理員F1</p><p> 圖書借閱CTRL+F 關(guān)于F2</p><p> 圖書歸還CTRL+G 退出CTRL+Q</p><p> 圖書罰款CTRL+H</p><p> ?。ú藛尉庉嬈髦械脑O(shè)置)</p><p> (2)窗體屬性設(shè)置如下表:
60、</p><p> 對該窗體編寫以下代碼,實現(xiàn)界面的功能:</p><p> Private Sub Command1_Click() '輸入密碼以后菜單按鈕變?yōu)榭捎?lt;/p><p> If Text1.Text = "ljj" And Text2.Text = "123" Then</p>&
61、lt;p> dzxx.Enabled = True</p><p> tsxx.Enabled = True</p><p> tsjy.Enabled = True</p><p> tsgh.Enabled = True</p><p> tsfk.Enabled = True</p><p>&l
62、t;b> End If</b></p><p> Command1.Visible = False</p><p> Command2.Visible = False</p><p> Text1.Visible = False</p><p> Text2.Visible = False</p>&
63、lt;p> Label2.Visible = False</p><p> Label3.Visible = False</p><p> Label4.Visible = False</p><p><b> End Sub</b></p><p> Private Sub Command2_Click
64、()</p><p><b> End</b></p><p><b> End Sub</b></p><p> Private Sub dzxx_Click() ‘打開讀者信息窗口</p><p> dzxxgl.Show</p><p><b>
65、End Sub</b></p><p> Private Sub gly_Click()</p><p> MsgBox "請用初始的用戶和密碼登陸系統(tǒng)!"</p><p><b> End Sub</b></p><p> Private Sub tc_Click()</p
66、><p><b> End</b></p><p><b> End Sub</b></p><p> Private Sub Timer1_Timer()</p><p> Label1.ForeColor = vbRed</p><p> Label1.Captio
67、n = Time</p><p> Label2.ForeColor = vbBlue</p><p> Label3.ForeColor = vbBlue</p><p> Label4.ForeColor = vbBlue</p><p> Label5.ForeColor = vbPurple</p><p&
68、gt;<b> End Sub</b></p><p> Private Sub tsfk_Click()</p><p> tsfkgl.Show</p><p><b> End Sub</b></p><p> Private Sub tsgh_Click()</p>
69、<p> tsghgl.Show</p><p><b> End Sub</b></p><p> Private Sub tsjy_Click()</p><p> tsjygl.Show</p><p><b> End Sub</b></p><p&g
70、t; Private Sub tsxx_Click()</p><p> tsxxgl.Show</p><p><b> End Sub</b></p><p><b> 創(chuàng)建數(shù)據(jù)訪問功能:</b></p><p> 該功能用于實現(xiàn)VB與SQL數(shù)據(jù)庫之間的通信。</p>&
71、lt;p> 打開控制面版------管理工具------數(shù)據(jù)源 (ODBC) 如圖 </p><p> 打開數(shù)據(jù)源 (ODBC) ,點“添加”;如圖</p><p> 如圖 ,選擇“SQL SERVER” 點“完成”。</p><p> 如圖,其中服務(wù)器用“.”,表示當前服務(wù)器。然后“下一步”。</p><p> 再“下一
72、步”,如圖,更改默認數(shù)據(jù)庫為剛才添加的“l(fā)ibrarybook”,然后“下一步”。</p><p> 點“完成”,如圖?!皽y試數(shù)據(jù)源”</p><p> 到這里數(shù)據(jù)連接的接口已經(jīng)打開。</p><p> 二、實現(xiàn)VB和數(shù)據(jù)庫之間的通信</p><p> 1、打開VB,添加“VB 數(shù)據(jù)庫窗體向?qū)А?,如圖“下一步”。</p>
73、<p> 選Remode(ODBC) ,”下一步” 如圖,</p><p> 在DNS中下拉選擇剛才創(chuàng)建的librarybook 數(shù)據(jù)源,“下一步“</p><p> 4、如圖,窗體布局選“網(wǎng)格(數(shù)據(jù)表)”,綁定類型選“ADO 數(shù)據(jù)控件”,“下一步“,</p><p> 5、如圖,記錄源下拉中選“讀者信息“,把所有”可用字段“添加到”選定字段“
74、下一步”</p><p> 6、如圖全部清除“可用控件”,“完成”。</p><p> 7、在VB菜單中“工程-----部件”,彈出窗口中下拉選擇Microsoft windows common controlrs 6.0,</p><p> Microsoft ADO Data Control 6.0 (OLEDB),和Microsoft DataGrid
75、Control 6.0 (OLEDB)等3個組鍵,如圖</p><p> 確定之后VB工具欄中多出了幾個控件,如圖。</p><p> 到這里VB已經(jīng)連接到了SQL數(shù)據(jù)庫的數(shù)據(jù)源。</p><p> 實現(xiàn)讀者檔案管理功能</p><p> ***注***(在此只具體介紹一個窗體,其他窗體的設(shè)置基本相同,詳細請看源代碼)</p&g
76、t;<p> 新建一個窗體,名字為dzxxgl </p><p> 各主要控件的屬性設(shè)置為:</p><p> 其它控件的具體擺設(shè)和屬性設(shè)置見圖和源代碼。</p><p> **附Adodc1 控件的具體設(shè)置:</p><p> 右件單擊ADODC1控件,選ADODC屬性,如圖,“點連接字符串”,“生成”</p
77、><p> 如圖,“使用數(shù)據(jù)源名稱”下拉選“l(fā)ibrarybook”,測試連接。</p><p> 點“確定”,回到屬性頁,選擇數(shù)據(jù)源,出現(xiàn)如圖,設(shè)置如圖所示:命令文本“select * from 讀者信息 ”</p><p> 確定。把DataGrid 控件的 datasource 屬性設(shè)置為 Adodc1</p><p> 運行后控
78、件DataGrid 就會顯示出數(shù)據(jù)庫中“讀者信息”的數(shù)據(jù)記錄了,如圖</p><p> 到此,VB已成功的讀取了SQL數(shù)據(jù)庫中的數(shù)據(jù)!</p><p> ?。?)為窗體dzxxgl添加如下代碼:</p><p><b> 代碼:</b></p><p> '調(diào)用函數(shù)FindFirst和FindNext從第一
79、條開始向下搜索,并把搜索到符合條件的數(shù)據(jù)寫到列表框中</p><p> Private Sub Command1_Click()</p><p> criteria = Combo1 & " like" & " '%" & Text1.Text & "%'"</p>
80、<p> ret = FindFirst(Adodc1.Recordset, criteria)</p><p><b> While ret</b></p><p> List1.AddItem Adodc1.Recordset("編號") & "," & Adodc1.Recordset(&
81、quot;姓名") & " ," & Adodc1.Recordset("性別") & " ," & Adodc1.Recordset("類型") & " ," & Adodc1.Recordset("出生日期") & "
82、," & Adodc1.Recordset("有效證件") & " ," & Adodc1.Recordset("證件號碼") & " ," & Adodc1.Recordset("聯(lián)系方式") & " ," & Adodc1.Recordset
83、("登記日期")</p><p> ret = FindNext(Adodc1.Recordset, criteria)</p><p><b> Wend</b></p><p><b> End Sub</b></p><p> '窗體激活后組合框1裝入所有字
84、段</p><p> Private Sub Form_Activate()</p><p> Combo1.Clear</p><p> For i = 0 To Adodc1.Recordset.Fields.Count - 1</p><p> Combo1.AddItem Adodc1.Recordset.Fields(i).
85、Name</p><p> Combo1.ListIndex = 0</p><p><b> Next</b></p><p> Combo2.AddItem "男"</p><p> Combo2.AddItem "女"</p><p> Li
86、st1.AddItem " 編號 姓名 性別 類型 出生日期 有效證件 證件號碼 聯(lián)系方式 登記日期"</p><p><b> End Sub</b></p><p> Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)</p>
87、<p> If StrComp(Button.Key, "btnFirst") = 0 Then</p><p> Adodc1.Recordset.MoveFirst '首記錄</p><p> ElseIf StrComp(Button.Key, "btnBefore") = 0 Then</p>&l
88、t;p> Adodc1.Recordset.MovePrevious '上一條記錄</p><p> If Adodc1.Recordset.BOF = True Then '當超過文件開頭時,光標自動移動到第一條</p><p><b> Beep</b></p><p> MsgBox ("當前記錄
89、已是第一條!")</p><p> Adodc1.Recordset.MoveFirst</p><p><b> End If</b></p><p> ElseIf StrComp(Button.Key, "btnNext") = 0 Then</p><p> Adodc1.R
90、ecordset.MoveNext '下一條記錄</p><p> If Adodc1.Recordset.EOF = True Then '當超過文件結(jié)尾時,光標自動移動到最后一條</p><p><b> Beep</b></p><p> MsgBox ("當前記錄已是最后一條!")</
91、p><p> Adodc1.Recordset.MoveLast</p><p><b> End If</b></p><p> ElseIf StrComp(Button.Key, "btnLast") = 0 Then</p><p> Adodc1.Recordset.MoveLast
92、'最后一條記錄</p><p> ElseIf StrComp(Button.Key, "btnNew") = 0 Then '按下新增按鈕</p><p> Text2.Enabled = True</p><p> Text3.Enabled = True</p><p> Text4.En
93、abled = True</p><p> Text5.Enabled = True</p><p> Text6.Enabled = True</p><p> Text7.Enabled = True</p><p> Text8.Enabled = True</p><p> Text9.Enabled
94、 = True</p><p> Text2.SetFocus</p><p> Toolbar1.Buttons("btnModify").Enabled = True '提交按鈕變?yōu)榭捎?lt;/p><p> ElseIf StrComp(Button.Key, "btnModify") = 0 Then
95、39;按下提交按鈕</p><p> If MsgBox("確認增加新的數(shù)據(jù)嗎?", vbYesNo) = vbYes Then</p><p> Adodc1.Recordset.AddNew '增加新的數(shù)據(jù)</p><p> Adodc1.Recordset("編號") = Text2.Text</p
96、><p> Adodc1.Recordset("姓名") = Text3.Text</p><p> Adodc1.Recordset("性別") = Combo2.Text</p><p> Adodc1.Recordset("類型") = Text4.Text</p><p>
97、 Adodc1.Recordset("出生日期") = Text5.Text</p><p> Adodc1.Recordset("有效證件") = Text6.Text</p><p> Adodc1.Recordset("證件號碼") = Text7.Text</p><p> Adodc1.R
98、ecordset("聯(lián)系方式") = Text8.Text</p><p> Adodc1.Recordset("登記日期") = Text9.Text</p><p><b> End If</b></p><p> Adodc1.Recordset.Update '光標移動到新增加的
99、數(shù)據(jù)上</p><p> '數(shù)據(jù)提交后清空文本框</p><p> Text2.Text = ""</p><p> Text3.Text = ""</p><p> Text4.Text = ""</p><p> Text5.Text =
100、 ""</p><p> Text6.Text = ""</p><p> Text7.Text = ""</p><p> Text8.Text = ""</p><p> Text9.Text = ""</p><
101、;p> '設(shè)置數(shù)據(jù)提交后文本框不可用</p><p> Text2.Enabled = False</p><p> Text3.Enabled = False</p><p> Text4.Enabled = False</p><p> Text5.Enabled = False</p><p&
102、gt; Text6.Enabled = False</p><p> Text7.Enabled = False</p><p> Text8.Enabled = False</p><p> Text9.Enabled = False</p><p> Toolbar1.Buttons("btnModify")
103、.Enabled = False '提交按鈕變?yōu)椴豢捎?lt;/p><p> ElseIf StrComp(Button.Key, "btnDelete") = 0 Then '按下刪除按鈕</p><p> If MsgBox("數(shù)據(jù)刪除后不可恢復(fù),確定要刪除嗎?", vbYesNo) = vbYes Then</p>
104、<p> Adodc1.Recordset.Delete</p><p><b> End If</b></p><p> ElseIf StrComp(Button.Key, "btnExit") = 0 Then '返回主頁面</p><p><b> Hide</b>
105、;</p><p><b> End If</b></p><p><b> End Sub</b></p><p> '定義從首記錄開始向下搜索的函數(shù)FindFirst</p><p> Function FindFirst(rs As ADODB.Recordset, ByVal
106、 criteria As String)</p><p> On Error Resume Next</p><p> rs.MoveFirst</p><p> rs.Find criteria</p><p> FindFirst = Not rs.EOF And Err.Number = 0</p><p&g
107、t; End Function</p><p> '定義從下一條記錄開始查詢的函數(shù)FindNext</p><p> Function FindNext(rs As ADODB.Recordset, ByVal criteria As String)</p><p> On Error Resume Next</p><p>
108、 rs.Find criteria, 1</p><p> FindNext = Not rs.EOF And Err.Number = 0</p><p> End Function</p><p> 讀者檔案管理功能模塊已經(jīng)完成!</p><p> 建立圖書信息管理模塊</p><p> 新建一個窗體,
109、命名為tsxxgl,名稱為“圖書信息”,各控件的屬性和設(shè)置與“讀者檔案管理功能模塊”相似。為該窗體編寫如下代碼:</p><p> '調(diào)用函數(shù)FindFirst和FindNext從第一條開始向下搜索,并把搜索到符合條件的數(shù)據(jù)寫到列表框中</p><p> Private Sub Command1_Click()</p><p> criteria =
110、Combo1 & " like" & " '%" & Text1.Text & "%'"</p><p> ret = FindFirst(Adodc1.Recordset, criteria)</p><p><b> While ret</b></
111、p><p> List1.AddItem Adodc1.Recordset("編號") & "," & Adodc1.Recordset("書名") & " ," & Adodc1.Recordset("作者") & " ," & Ad
112、odc1.Recordset("出版社") & " ," & Adodc1.Recordset("價格") & " ," & Adodc1.Recordset("現(xiàn)存量")</p><p> ret = FindNext(Adodc1.Recordset, criteria)
113、</p><p><b> Wend</b></p><p><b> End Sub</b></p><p> ‘'窗體激活后組合框1裝入所有字段</p><p> Private Sub Form_Activate()</p><p> Combo1.C
114、lear</p><p> For i = 0 To Adodc1.Recordset.Fields.Count - 1</p><p> Combo1.AddItem Adodc1.Recordset.Fields(i).Name</p><p> Combo1.ListIndex = 0</p><p><b> Nex
115、t</b></p><p> List1.AddItem "編號 書名 作者 出版社 價格 現(xiàn)存量"</p><p><b> End Sub</b></p><p> Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Bu
116、tton)</p><p> If StrComp(Button.Key, "btnFirst") = 0 Then</p><p> Adodc1.Recordset.MoveFirst '首記錄</p><p> ElseIf StrComp(Button.Key, "btnBefore") = 0 The
117、n</p><p> Adodc1.Recordset.MovePrevious '上一條記錄</p><p> If Adodc1.Recordset.BOF = True Then '當超過文件開頭時,光標自動移動到第一條</p><p><b> Beep</b></p><p> Msg
118、Box ("當前記錄已是第一條!")</p><p> Adodc1.Recordset.MoveFirst</p><p><b> End If</b></p><p> ElseIf StrComp(Button.Key, "btnNext") = 0 Then</p><
119、p> Adodc1.Recordset.MoveNext '下一條記錄</p><p> If Adodc1.Recordset.EOF = True Then '當超過文件結(jié)尾時,光標自動移動到最后一條</p><p><b> Beep</b></p><p> MsgBox ("當前記錄已是最后
120、一條!")</p><p> Adodc1.Recordset.MoveLast</p><p><b> End If</b></p><p> ElseIf StrComp(Button.Key, "btnLast") = 0 Then</p><p> Adodc1.Recor
121、dset.MoveLast '最后一條記錄</p><p> ElseIf StrComp(Button.Key, "btnNew") = 0 Then '按下新增按鈕</p><p> Text2.Enabled = True</p><p> Text3.Enabled = True</p><
122、p> Text4.Enabled = True</p><p> Text5.Enabled = True</p><p> Text6.Enabled = True</p><p> Text7.Enabled = True</p><p> Text2.SetFocus</p><p> Tool
123、bar1.Buttons("btnModify").Enabled = True '提交按鈕變?yōu)榭捎?lt;/p><p> ElseIf StrComp(Button.Key, "btnModify") = 0 Then '按下提交按鈕</p><p> If MsgBox("確認增加新的數(shù)據(jù)嗎?", vbYes
124、No) = vbYes Then</p><p> Adodc1.Recordset.AddNew '增加新的數(shù)據(jù)</p><p> Adodc1.Recordset("編號") = Text2.Text</p><p> Adodc1.Recordset("書名") = Text3.Text</p>
125、;<p> Adodc1.Recordset("作者") = Text4.Text</p><p> Adodc1.Recordset("出版社") = Text5.Text</p><p> Adodc1.Recordset("價格") = Text6.Text</p><p> A
126、dodc1.Recordset("現(xiàn)存量") = Text7.Text</p><p><b> End If</b></p><p> Adodc1.Recordset.Update '光標移動到新增加的數(shù)據(jù)上</p><p> '數(shù)據(jù)提交后清空文本框</p><p>
127、Text2.Text = ""</p><p> Text3.Text = ""</p><p> Text4.Text = ""</p><p> Text5.Text = ""</p><p> Text6.Text = ""<
128、;/p><p> Text7.Text = ""</p><p> '設(shè)置數(shù)據(jù)提交后文本框不可用</p><p> Text2.Enabled = False</p><p> Text3.Enabled = False</p><p> Text4.Enabled = False&l
129、t;/p><p> Text5.Enabled = False</p><p> Text6.Enabled = False</p><p> Text7.Enabled = False</p><p> Toolbar1.Buttons("btnModify").Enabled = False '提交按鈕變?yōu)?/p>
130、不可用</p><p> ElseIf StrComp(Button.Key, "btnDelete") = 0 Then '按下刪除按鈕</p><p> If MsgBox("數(shù)據(jù)刪除后不可恢復(fù),確定要刪除嗎?", vbYesNo) = vbYes Then</p><p> Adodc1.Recordse
131、t.Delete</p><p><b> End If</b></p><p> ElseIf StrComp(Button.Key, "btnExit") = 0 Then '返回主頁面</p><p><b> Hide</b></p><p><b&
132、gt; End If</b></p><p><b> End Sub</b></p><p> '定義從首記錄開始向下搜索的函數(shù)FindFirst</p><p> Function FindFirst(rs As ADODB.Recordset, ByVal criteria As String)</p&g
133、t;<p> On Error Resume Next</p><p> rs.MoveFirst</p><p> rs.Find criteria</p><p> FindFirst = Not rs.EOF And Err.Number = 0</p><p> End Function</p>
134、<p> '定義從下一條記錄開始查詢的函數(shù)FindNext</p><p> Function FindNext(rs As ADODB.Recordset, ByVal criteria As String)</p><p> On Error Resume Next</p><p> rs.Find criteria, 1</p&
135、gt;<p> FindNext = Not rs.EOF And Err.Number = 0</p><p> End Function</p><p> 圖書信息管理功能模塊已經(jīng)完成</p><p> 建立圖書借閱信息管理模塊</p><p> 新建一個窗體,命名為tsjygl,名稱為“圖書借閱信息”,各控件的屬
136、性和設(shè)置與“讀者檔案管理功能模塊”相似。為該窗體編寫如下代碼:</p><p> '調(diào)用函數(shù)FindFirst和FindNext從第一條開始向下搜索,并把搜索到符合條件的數(shù)據(jù)寫到列表框中</p><p> Private Sub Command1_Click()</p><p> criteria = Combo1 & " like&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(圖書館管理系統(tǒng))
- 數(shù)據(jù)庫課程設(shè)計-圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 圖書館管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計報告---圖書館管理系統(tǒng)數(shù)據(jù)庫
- 數(shù)據(jù)庫課程設(shè)計報告——圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告——圖書館管理系統(tǒng)
- java數(shù)據(jù)庫課程設(shè)計 圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計--圖書館管理系統(tǒng) (2)
- 數(shù)據(jù)庫原理課程設(shè)計--圖書館管理系統(tǒng)
- java數(shù)據(jù)庫課程設(shè)計---圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計-高校圖書館管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告--圖書館圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計-圖書館借閱系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計---圖書館圖書借閱管理信息系統(tǒng)數(shù)據(jù)庫設(shè)計
- 圖書館系統(tǒng)數(shù)據(jù)庫設(shè)計課程設(shè)計報告
評論
0/150
提交評論