版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual Basic 程序設(shè)計(jì)工程化教程主編 管小清 郭賀彬工程十六 圖書管理系統(tǒng) 工程功能描述: 本工程設(shè)計(jì)并完成了一個(gè)小型的圖書管理系統(tǒng),系統(tǒng)可對(duì)借書人的個(gè)人信息及個(gè)人借情況進(jìn)行登記錄入、編輯、修改及刪除,可對(duì)購(gòu)置圖書進(jìn)行登記,對(duì)庫(kù)存圖書進(jìn)行查詢匯總,并對(duì)借書人損壞書籍進(jìn)行登記錄入。 工程十六 圖書管理系統(tǒng)工程主要知識(shí)點(diǎn):編程方式訪問(wèn)數(shù)據(jù)庫(kù)無(wú)源數(shù)據(jù)庫(kù)連接圖書管理系統(tǒng)的設(shè)計(jì)工程實(shí)施步驟:1閱讀相關(guān)根底知識(shí)2圖書管理系統(tǒng)功能設(shè)計(jì)簡(jiǎn)述3SQL Server 2000數(shù)據(jù)庫(kù)設(shè)計(jì)4圖書管理系統(tǒng)窗體設(shè)計(jì)5程序代碼調(diào)試16.1根底知識(shí)概述16.1.1 無(wú)源數(shù)據(jù)庫(kù)連接1無(wú)源數(shù)據(jù)庫(kù)連接概述“無(wú)源數(shù)據(jù)庫(kù)連
2、接并不是說(shuō)不需要數(shù)據(jù)源,如果沒有數(shù)據(jù)源那么連接將成為紙上談兵,只是不需要配置ODBC數(shù)據(jù)源,利用ADO通過(guò)代碼編程進(jìn)行連接。2使用ADO 對(duì)象模型訪問(wèn)數(shù)據(jù)庫(kù) 為了能夠在程序中使用ADO對(duì)象編程,在連接數(shù)據(jù)庫(kù)前,在Visual Basic 6.0菜單 “工程“引用中選擇Microsoft ActiveX Data Objects 2.8 Library組件。運(yùn)用ADO對(duì)象模型的主要元素Connection連接中的ConnectionString屬性進(jìn)行連接,ConnectionString為可讀寫string類型,在模塊中指定一個(gè)連接字符串,告訴ADO如何連接數(shù)據(jù)庫(kù)。 16.2圖書管理系統(tǒng)功能設(shè)
3、計(jì)16.2.1 系統(tǒng)目標(biāo)通過(guò)使用小型圖書管理系統(tǒng),可以方便地對(duì)個(gè)人借書、還書、損壞書籍賠償及圖書信息進(jìn)行管理。16.2.2 系統(tǒng)功能1個(gè)人信息對(duì)借書人的必要的個(gè)人信息及借書情況進(jìn)行添加、修改、刪除。2圖書信息 可以通過(guò)圖書編號(hào)或時(shí)間進(jìn)行書籍查詢,并輸出查詢結(jié)果。同時(shí)對(duì)損壞的書籍進(jìn)行賠償?shù)怯洝?系統(tǒng)管理 可以添加/刪除系統(tǒng)用戶,登記新圖書,并對(duì)圖書信息進(jìn)行修改、刪除。16.2.3 系統(tǒng)結(jié)構(gòu)圖圖書管理系統(tǒng)系統(tǒng)結(jié)構(gòu)圖,如圖16-1所示: 圖 16-1 圖書管理系統(tǒng)結(jié)構(gòu)圖16.3數(shù)據(jù)庫(kù)設(shè)計(jì)16.3.1 建立tushugl數(shù)據(jù)庫(kù)啟動(dòng)SQL Server 2000中企業(yè)管理器,建立tushugl數(shù)據(jù)庫(kù),建
4、立個(gè)人信息、個(gè)人借書、圖書登記、用戶信息、圖書賠償數(shù)據(jù)表。1個(gè)人信息表,如圖16-2所示:圖16-2 個(gè)人信息表16.3數(shù)據(jù)庫(kù)設(shè)計(jì)2個(gè)人借書表,如圖16-3所示圖 16-3 個(gè)人借書表16.3數(shù)據(jù)庫(kù)設(shè)計(jì)3圖書登記表,如圖16-4所示:圖16-4 圖書登記表16.3數(shù)據(jù)庫(kù)設(shè)計(jì)4用戶信息表,如圖16-5所示:圖16-5 用戶信息表16.3數(shù)據(jù)庫(kù)設(shè)計(jì)5圖書賠償表,如圖16-6所示:圖16-6 圖書賠償表16.3.2 連接數(shù)據(jù)庫(kù)1引用ADO在Visual Basic環(huán)境下,選擇“工程“引用命令,在出現(xiàn)的對(duì)話框中選擇“Microsoft ActiveX Data Objects 2.0 Library,
5、然后單擊“ 確定按鈕,如以下圖16-7所示: 圖 16-7 引用ADO16.3.2 連接數(shù)據(jù)庫(kù)2創(chuàng)立模塊文件建立公共模塊可以提高代碼的效率,同時(shí)使得修改和維護(hù)代碼都很方便。1添加模塊在Visual Basic環(huán)境下,選擇“工程“添加模塊那么出現(xiàn)模塊對(duì)話框,如圖16-8所示: 選擇模塊圖標(biāo)后,單擊“翻開按鈕,那么模塊已經(jīng)添加到工程中了。默認(rèn)情況下名為Module1。圖16-8 模塊對(duì)話框16.3.2 連接數(shù)據(jù)庫(kù)2 定義ADO連接對(duì)象在“圖書管理系統(tǒng)工程中,創(chuàng)立模塊文件,在模塊中,定義ADO連接對(duì)象。語(yǔ)句如下: Public conn As New ADODB.Connection 標(biāo)記連接對(duì)象P
6、ublic rs As New ADODB.Recordset 標(biāo)記連接對(duì)象3創(chuàng)立實(shí)例對(duì)象在子程序中,用如下的語(yǔ)句創(chuàng)立實(shí)例對(duì)象: Dim conn As ADODB.ConnectionDim rs As ADODB.RecordsetsSet conn = New ADODB.Connection 創(chuàng)立實(shí)例對(duì)象Set rs = New ADODB. Recordsets 創(chuàng)立實(shí)例對(duì)象4建立連接,翻開數(shù)據(jù)庫(kù)conn.ConnectionString = Provider=SQLOLEDB.1;Persist_ Security_ Info=False;Server=機(jī)器名實(shí)例名;User ID
7、=sa;_ Password=;DataBase=tushugl; conn.Open16.4“圖書管理系統(tǒng)窗體設(shè)計(jì)16.4.1 主窗體設(shè)計(jì)1設(shè)計(jì)概述在主窗體界面中單擊菜單上的功能按鈕,可以調(diào)用相應(yīng)的子窗體。在狀態(tài)欄中顯示當(dāng)前的日期、時(shí)間以及公司的網(wǎng)址。對(duì)界面背景進(jìn)行添加圖片和陰影字的設(shè)計(jì)。2主窗體設(shè)計(jì)1創(chuàng)立主窗體新建一個(gè)“標(biāo)準(zhǔn)EXE工程并將工程命名為“圖書管理系統(tǒng)。選擇“工程“添加MDI窗體命令。與上一個(gè)工程不同的是我們采用MDI多文檔界面。在應(yīng)用程序中,使用多文檔界面MDI可以同時(shí)翻開顯示、處理多個(gè)文檔,使數(shù)據(jù)處理更加方便。在MDI應(yīng)用程序中至少包含兩種窗體:父窗體和子窗體。每個(gè)窗體都有相
8、應(yīng)的特性。16.4“圖書管理系統(tǒng)窗體設(shè)計(jì)MDI窗體的特性MDI窗體有且只有一個(gè)。子窗體至少有一個(gè)或一個(gè)以上。所有的窗體無(wú)論任何操作都不能移出MDI窗體。父窗體最小化時(shí),所有的子窗體也同時(shí)最小化,并且MDI窗體及其所有的子窗體將由一個(gè)圖標(biāo)來(lái)代表。MDI子窗體的屬性在建立了MDI子窗體之后,要想Form1成為子窗體,要將其MDIChild屬性設(shè)置為True。16.4“圖書管理系統(tǒng)窗體設(shè)計(jì)2設(shè)置主窗體的屬性 主窗體的屬性如表16-1所示:表16-1 窗體屬性表屬 性值Caption圖書管理系統(tǒng)NameMDIFormMainWindowstateMaxsize 16.4“圖書管理系統(tǒng)窗體設(shè)計(jì)3創(chuàng)立AD
9、O對(duì)象模塊文件在菜單中選擇“工程“添加模塊命令,將模塊添加到工程后,默認(rèn)名為Module1,重命名為baseSQL。在模塊中定義整個(gè)工程的公共變量。Public conn As New ADODB.Connection 定義連接對(duì)象Public rs_dengji As New ADODB.Recordset 定義記錄集對(duì)象Public rs_jieshu As New ADODB.RecordsetPublic rs_peichang As New ADODB.RecordsetPublic rs_adduser As New ADODB.RecordsetPublic rs_deluser
10、 As New ADODB.RecordsetPublic rs_login As New ADODB.RecordsetPublic rs_peichang As New ADODB.Recordset16.4“圖書管理系統(tǒng)窗體設(shè)計(jì)4創(chuàng)立全局變量模塊文件將模塊添加到工程中了。默認(rèn)情況下名為Module2,可重命名為恥下 basedim在模塊中定義整個(gè)工程的公共變量Public userID As String 定義當(dāng)前用戶IDPublic userpow As String 定義用戶權(quán)限Public find As Boolean 定義查詢Public findok As BooleanPu
11、blic frmdata As BooleanPublic Const keyenter = 13 enter鍵的ASCII碼16.4.2 主窗體菜單1創(chuàng)立菜單選擇“工具“菜單編輯器編輯菜單,彈出如圖16-8所示菜單編輯器對(duì)話框,根據(jù)系統(tǒng)的需要?jiǎng)?chuàng)立主菜單和子菜單。 圖16-8 圖書管理系統(tǒng)菜單設(shè)計(jì)16.4.2 主窗體菜單系統(tǒng)菜單項(xiàng)表系統(tǒng)菜單項(xiàng)如表16-2所示:標(biāo)題名稱功 能 描 述個(gè)人信息person主菜單個(gè)人信息personinfo子菜單個(gè)人借書personborrow 子菜單圖書信息tushuinfo主菜單查詢輸出tushuque調(diào)出查詢輸出窗體圖書賠償tushupeichang調(diào)出圖書賠
12、償窗體系統(tǒng)管理systemgl主菜單,包含子菜單添加用戶adduser調(diào)出用戶窗體刪除用戶deluser調(diào)出用戶窗體圖書登記checkin調(diào)出圖書登記窗體圖書歸還return調(diào)出圖書個(gè)人借書窗體報(bào)表輸出datareport調(diào)出報(bào)表輸出退出系統(tǒng)systemexit主菜單 包含子窗體退出系統(tǒng)exit退出系統(tǒng)16.4.2 主窗體菜單主窗體代碼在本工程中,子菜單事件都是Click事件,這里給出主窗體局部代碼?!疤砑佑脩糇硬藛蜟lick事件,調(diào)出添加用戶窗體代碼。Private Sub adduser_Click()frmadduser.Show 1End Sub“查詢輸出子菜單Click事件,調(diào)出查詢
13、輸出窗體代碼。Private Sub chaxunshuchu_Click()frmfind.Show 1End Sub“退出子菜單Click事件,調(diào)出退出窗體代碼。Private Sub exit_Click()Unload MeEnd Sub16.4.2 主窗體菜單“圖書登記子菜單Click事件,調(diào)出圖書登記窗體代碼。Private Sub checkin_Click()frmdengji.Show End Sub“個(gè)人借書子菜單Click事件,調(diào)出個(gè)人借書窗體代碼。Private Sub personborrow_Click()frmjieshu.Show End Sub“圖書賠償子菜單
14、Click事件,調(diào)出圖書賠償窗體代碼。Private Sub tushupeichang_Click()frmpeichang.Show 1End Sub16.4.3 創(chuàng)立各子窗體1子窗體設(shè)計(jì)1設(shè)計(jì)說(shuō)明 圖書管理系統(tǒng)的子窗體類型主要有“系統(tǒng)登錄、“數(shù)據(jù)編輯錄入、“查詢、“打印報(bào)表等。在圖書管理系統(tǒng)中,要?jiǎng)?chuàng)立的所有子窗體如表16-3所示:子窗體標(biāo)題子 窗 體 名個(gè)人信息Frm_personinfo個(gè)人借書Frm_jieshu查詢輸出Frm_addCarsale圖書賠償Frm_peichang添加用戶Frm_addUser刪除用戶Frm_delUser圖書登記Frm_dengji圖書歸還Frm_r
15、eturn 報(bào)表打印Frm_datareportprt 退出系統(tǒng)Frm_exit系統(tǒng)登錄Frm_login16.4.3 創(chuàng)立各子窗體2子窗體代碼 “圖書管理系統(tǒng)工程,盡管有些子窗體界面功能設(shè)計(jì)與工程十五“汽車銷售管理系統(tǒng)根本相同,例如系統(tǒng)登錄子窗體,圖書登記子窗體,查詢子窗體等,但由于訪問(wèn)數(shù)據(jù)庫(kù)方式發(fā)生了巨大的變化,使用ADO對(duì)象模型,采用編程式訪問(wèn)數(shù)據(jù)庫(kù),所以在圖書管理系統(tǒng)子窗體中,除了設(shè)計(jì)窗體的界面外,更重要的是編程代碼,是本工程的重點(diǎn)難點(diǎn)內(nèi)容。 16.4.3 創(chuàng)立各子窗體2系統(tǒng)登錄子窗體 關(guān)于系統(tǒng)登錄界面設(shè)計(jì),可參考工程六,我們重點(diǎn)介紹系統(tǒng)登錄子窗體的代碼。 1窗體加載代碼 Set co
16、nn = New ADODB.Connection 創(chuàng)立連接實(shí)例conn.ConnectionString = Provider=SQLOLEDB.1;Persist_ Security Info=False;Server=ZHENGSHAOJ;User ID=sa;_Password=;DataBase=tushugl; 連接數(shù)據(jù)庫(kù)conn.ConnectionTimeout = 30conn.Open16.4.3 創(chuàng)立各子窗體2翻開記錄集對(duì)象的代碼 rs_login.Open , select * from 用戶信息,conn,_ adOpenKeyset,adLockOptimistic
17、, adCmdText3個(gè)人信息窗體設(shè)計(jì) 個(gè)人信息窗體屬于數(shù)據(jù)編輯錄入類型窗體,我們?cè)诠こ淌逯?,介紹了兩種創(chuàng)立數(shù)據(jù)編輯錄入窗體的方法,本工程中我們以“個(gè)人信息子窗體為例,繼續(xù)深入學(xué)習(xí)第二種創(chuàng)立數(shù)據(jù)編輯錄入窗體的方法。 1設(shè)計(jì)思路 在個(gè)人信息窗體中,即能對(duì)個(gè)人信息進(jìn)行添加、修改、刪除,也同時(shí)能看到每個(gè)人借書的詳細(xì)資料。 16.4.3 創(chuàng)立各子窗體2啟動(dòng)“數(shù)據(jù)窗體向?qū)?啟動(dòng)“數(shù)據(jù)窗體向?qū)У姆椒?,可參考工程十五中關(guān)于“數(shù)據(jù)編輯錄入窗體的創(chuàng)立。3提供連接信息 本工程采用無(wú)源數(shù)據(jù)庫(kù)連接,這樣在提供連接信息時(shí)與工程十五完全不同,其具體信息如圖16-9所示:圖 16-9 無(wú)源數(shù)據(jù)庫(kù)連接提供連接信息機(jī)器名、
18、實(shí)例名16.4.3 創(chuàng)立各子窗體4選擇窗體類型和數(shù)據(jù)綁定類型窗體類型我們選擇“主表/細(xì)表,綁定類型我們選擇“ADO代碼。 圖 16-10 窗體類型和數(shù)據(jù)綁定類型16.4.3 創(chuàng)立各子窗體5主表記錄源 主表記錄源選擇“個(gè)人信息,并選定所有字段。如圖16-11所示:圖 16-11 主表記錄源16.4.3 創(chuàng)立各子窗體6詳細(xì)資料記錄源 細(xì)表記錄源選擇“個(gè)人借書,然后把需要詳細(xì)描述的字段作為選定的字段,如圖16-12所示: 圖 16-11 細(xì)表記錄源16.4.3 創(chuàng)立各子窗體7記錄源關(guān)系 選擇一個(gè)字段作為連接主/細(xì)表的字段,如圖16-12所示:圖 16-12 主/細(xì)表關(guān)聯(lián)字段16.4.3 創(chuàng)立各子窗體
19、8選擇窗體控件 選擇窗體所需要的控件,如圖16-13所示:圖 16-13 窗體控件選擇16.4.3 創(chuàng)立各子窗體9用數(shù)據(jù)窗體向?qū)е谱鞯摹皞€(gè)人信息按照我們的選擇,生成的數(shù)據(jù)窗體如圖16-14所示: 圖 16-14 個(gè)人信息窗體16.4.3 創(chuàng)立各子窗體10個(gè)人信息窗體代碼 用數(shù)據(jù)窗體向?qū)е谱鞯摹皞€(gè)人信息窗體,代碼自動(dòng)產(chǎn)生。4圖書登記子窗體設(shè)計(jì)與主要代碼關(guān)于圖書登記窗體,由于我們采用編程訪問(wèn)數(shù)據(jù)庫(kù),所以編程代碼是重點(diǎn)及難點(diǎn)問(wèn)題。 設(shè)計(jì)思路 圖書登記窗體是數(shù)據(jù)編輯錄入窗體,其窗體設(shè)計(jì)參考工程十五中數(shù)據(jù)編輯錄入窗體的第一種方法,用我們所學(xué)的控件創(chuàng)立,使窗體能對(duì)記錄進(jìn)行添加、修改、刪除。16.4.3 創(chuàng)
20、立各子窗體2圖書登記子窗體圖書登記窗體如圖16-15所示:圖16-15 圖書登記窗體16.4.3 創(chuàng)立各子窗體圖書登記子窗體控件圖書登記窗體上控件列表: 表16-4 圖書窗體上的控件表控 件 類 別控件Name控件TextLabelLabel1編號(hào)Label2書名Label3類型Label4購(gòu)買日期Label5數(shù)量Label6定價(jià)16.4.3 創(chuàng)立各子窗體TextBoxText1(0)(空) Text1(1)(空) Text1(2)(空) Text1(3)(空) Text1(4)(空) Text1(5)(空) DTPickerDTPicker1當(dāng)前日期CommandButtonCommand1
21、添加記錄Command2刪除記錄Command3下一條Command4上一條Command5第一條Command6最后一條Command7退出DataGridDataGrid1(空)16.4.3 創(chuàng)立各子窗體4圖書登記窗體主要代碼窗體加載代碼:Private Sub Form_Load() conn.CursorLocation = adUseClient adUserClient 控制記錄集游標(biāo),是客戶端還是效勞器端,假設(shè)選擇adUserSever是效勞器端,選擇adUseClient是客戶端。Set rs_dengji = New ADODB.Recordset 創(chuàng)立記錄集實(shí)例If rs_
22、dengji.State = adStateOpen Then 檢測(cè)數(shù)據(jù)庫(kù)是否翻開狀態(tài)rs_dengji.CloseEnd If16.4.3 創(chuàng)立各子窗體rs_dengji.Open select * from 圖書登記, conn,_adOpenKeyset,adLockOptimistic, adCmdTex 翻開“圖書登記表Set Me.DataGrid1.DataSource = rs_dengji DataGrid1綁定數(shù)據(jù)源DataGrid1.Col = 0 文本框與DataGrid1綁定Text1(0).Text = DataGrid1.TextDataGrid1.Col = 1
23、Text1(1).Text = DataGrid1.TextDataGrid1.Col = 2Text1(2).Text = DataGrid1.TextDataGrid1.Col = 3DTPicker1.Value = DataGrid1.TextDataGrid1.Col = 4Text1(4).Text = DataGrid1.TextDataGrid1.Col = 5Text1(5).Text = DataGrid1.Text16.4.3 創(chuàng)立各子窗體“添加記錄按鈕代碼:Private Sub Command1_Click() Do While rs_dengji.EOF = Fal
24、seIf rs_dengji.Fields(0) = Trim(Text1(0).Text) ThenStr = MsgBox(您輸入的圖書編號(hào)己存在,是否將圖書數(shù)量_累加到原始圖書上? , vbQuestion + vbYesNo, 編號(hào)重復(fù))If str1 = vbYes Thenrs_dengji.Fields(4) = Int(rs_dengji.Fields(5) + Int(Text1(4).Text)rs_dengji.UpdateMsgBox 添加成功!請(qǐng)驗(yàn)證!, vbInformation, 累加成功Exit SubElseText1(0).Text = Exit Sub16
25、.4.3 創(chuàng)立各子窗體End IfElsers_dengji.MoveNextEnd If Looprs_dengji.AddNewrs_dengji.Fields(編號(hào)) = Trim(Text1(0).Text)rs_dengji.Fields(書名) = Trim(Text1(1).Text)rs_dengji.Fields(類型) = Trim(Text1(2).Text)rs_dengji.Fields(購(gòu)置日期) = DTPicker1.Valuers_dengji.Fields(數(shù)量) = Val(Trim(Text1(4).Text)rs_dengji.Fields(定價(jià)) =
26、 Val(Trim(Text1(5).Text)rs_dengji.UpdateMsgBox 數(shù)據(jù)己添加成功, vbInformation, 添加成功 End Sub16.4.3 創(chuàng)立各子窗體“刪除記錄按鈕代碼:Private Sub Command2_Click() If rs_dengji.EOF = True Then MsgBox 沒有記錄,無(wú)法刪除! Exit Sub End If If rs_dengji.EOF = False Then Text1(0).Text = rs_dengji.Fields(0) If MsgBox(刪除當(dāng)前記錄嗎?, vbYesNo + vbQues
27、tion) = vbYes Then rs_dengji.Delete rs_dengji.Update End If MsgBox 數(shù)據(jù)己刪除, vbInformation, 刪除圖書登記 Else rs_dengji.MoveNext End If End Sub16.4.3 創(chuàng)立各子窗體“下一條按鈕代碼:Private Sub Command3_Click()If Command4.Enabled = False Then Command3.Enabled = TrueEnd IfIf rs_dengji.EOF = False Then rs_dengji.MoveNext If rs
28、_dengji.EOF ThenMsgBox 這是最后一條記錄, vbOKCancel + vbQuestion_rs_dengji.MoveLast End If16.4.3 創(chuàng)立各子窗體 Text1(0).Text = rs_dengji.Fields(0) Text1(1).Text = rs_dengji.Fields(1) Text1(2).Text = rs_dengji.Fields(2) DTPicker1.Value = rs_dengji.Fields(3) Text1(4).Text = rs_dengji.Fields(4) Text1(5).Text = rs_den
29、gji.Fields(5)End IfEnd Sub16.4.3 創(chuàng)立各子窗體“上一條 按鈕代碼Private Sub Command4_Click()If Command3.Enabled = False Then Command4.Enabled = TrueEnd IfIf rs_dengji.BOF = False Thenrs_dengji.MovePrevious If rs_dengji.BOF Then MsgBox 這是第一條記錄, vbOKCancel + vbQuestion rs_dengji.MoveFirst Exit Sub16.4.3 創(chuàng)立各子窗體End If
30、Text1(0).Text = rs_dengji.Fields(0) Text1(1).Text = rs_dengji.Fields(1) Text1(2).Text = rs_dengji.Fields(2) DTPicker1.Value = rs_dengji.Fields(3) Text1(4).Text = rs_dengji.Fields(4) Text1(5).Text = rs_dengji.Fields(5) End IfEnd Sub 16.4.3 創(chuàng)立各子窗體個(gè)人借書和圖書賠償子窗體分別如以下圖16-16和16-17所示,它們與圖書登記子窗體的代碼根本相同,在此不作介
31、紹。 圖 16-16 個(gè)人借書窗體16.4.3 創(chuàng)立各子窗體圖16-17 圖書賠償窗體16.4.3 創(chuàng)立各子窗體5查詢子窗體設(shè)計(jì)1設(shè)計(jì)思路 “查詢是應(yīng)用軟件中必不可少的局部,幾乎任何一個(gè)應(yīng)用軟件的設(shè)計(jì)都離不開查詢,本系統(tǒng)可以按照?qǐng)D書的編號(hào)進(jìn)行查詢,也可以按照購(gòu)書時(shí)間進(jìn)行查詢。2查詢子窗體界面 查詢子窗體界面如圖16-18所示:圖16-18 圖書查詢窗體16.4.3 創(chuàng)立各子窗體3查詢子窗體控件 查詢子窗體控件如表16-5所示: 控 件 類 別控件Name控件TextOptionButtonOption1按編號(hào)查詢Option2按購(gòu)買日期查詢LabelLabel1從Label2到Label3從L
32、abel4 到DTPickerDTPicker1當(dāng)前日期DTPicker2當(dāng)前日期CommandButtonCommand1查詢Command2取消ComboBoxCombo1(0)選擇編號(hào)Combo1(1)選擇編號(hào)Combo2(0)選擇日期Combo2(1)選擇日期16.4.3 創(chuàng)立各子窗體4查詢子窗體的主要代碼:加載窗體代碼:Private Sub Form_Load()Dim i As IntegerIf rs_dengji.State = adStateOpen Then 檢驗(yàn)數(shù)據(jù)庫(kù)狀態(tài)rs_dengji.CloseEnd Ifrs_dengji.Open select * from
33、圖書登記 order by 編號(hào) desc, _conn, adOpenKeyset, adLockOptimistic, adCmdTextIf rs_dengji.EOF = False Then 添加編號(hào)和日期16.4.3 創(chuàng)立各子窗體With rs_dengji Do While Not .EOF Combo1(0).AddItem .Fields(0) Combo1(1).AddItem .Fields(0) Combo2(0).AddItem .Fields(3) Combo2(1).AddItem .Fields() .MoveNext LoopEnd WithEnd IfEnd
34、 Sub16.4.3 創(chuàng)立各子窗體查詢按鈕代碼Private Sub Command1_Click()If rs_dengji.State = adStateOpen Then 檢驗(yàn)數(shù)據(jù)庫(kù)狀態(tài)rs_dengji.CloseEnd IfIf Option1.Value = True ThenOption2.Enabled = Falsers_dengji.Open select * from 圖書登記 where 編號(hào) between _& Combo1(0).Text & and & Combo1(1).Text & , _conn, adOpenKeyset, adLockOptimisti
35、c, adCmdTextfrm_datamanage.Show 調(diào)查詢結(jié)果輸出窗體End If16.4.3 創(chuàng)立各子窗體If Option2.Value = True ThenOption1.Enabled = Falsers_dengji.Open select * from 圖書登記 where 購(gòu)置日期 between & Combo2(0).Text & and & Combo2(1).Text & frm_datamanage.ShowEnd IfUnload MeEnd Sub16.4.3 創(chuàng)立各子窗體5查詢結(jié)果輸出窗體查詢結(jié)果輸出窗體如圖16-19所示:圖 16-19 圖書查詢結(jié)
36、果輸出16.4.3 創(chuàng)立各子窗體6報(bào)表窗體設(shè)計(jì)1設(shè)計(jì)概述 報(bào)表是數(shù)據(jù)管理系統(tǒng)不可缺少局部,Visual Basic 6.0提供了數(shù)據(jù)報(bào)表設(shè)計(jì)器來(lái)建立數(shù)據(jù)報(bào)表。 數(shù)據(jù)報(bào)表設(shè)計(jì)器是一個(gè)多功能的報(bào)表生成器,以創(chuàng)立聯(lián)合分層結(jié)構(gòu)報(bào)表的能力為特色,同數(shù)據(jù)源一起使用,可以從幾個(gè)不同的相關(guān)表創(chuàng)立報(bào)表。除創(chuàng)立可打印報(bào)表之外,也可以將報(bào)表導(dǎo)入到HTML或文本文件中。 2設(shè)計(jì)方法 配置一個(gè)數(shù)據(jù)源,用于訪問(wèn)數(shù)據(jù)庫(kù),并設(shè)定DataReport對(duì)象的DataSource屬性和DetaMember屬性。運(yùn)行時(shí),使用Show方法顯示數(shù)據(jù)報(bào)表,本工程我們以圖書登記信息分組輸出為例詳細(xì)介紹設(shè)計(jì)過(guò)程。16.4.3 創(chuàng)立各子窗體添加
37、數(shù)據(jù)環(huán)境設(shè)計(jì)器我們利用數(shù)據(jù)環(huán)境設(shè)計(jì)器,設(shè)置分組字段。單擊“工程“添加Data Environment命令,在“圖書管理系統(tǒng)中添加一個(gè)數(shù)據(jù)環(huán)境設(shè)計(jì)器。如圖16-20所示:圖 16-20 數(shù)據(jù)環(huán)境設(shè)計(jì)器16.4.3 創(chuàng)立各子窗體設(shè)置Connection1屬性選中“Connection1,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“屬性命令,彈出由如圖16-21所示的對(duì)話框,設(shè)置數(shù)據(jù)鏈接屬性。然后在圖16-22中設(shè)計(jì)連接選項(xiàng)卡。 圖 16-21 數(shù)據(jù)鏈接屬性16.4.3 創(chuàng)立各子窗體圖 16-22 連接選項(xiàng)卡16.4.3 創(chuàng)立各子窗體添加命令Command1選中“Connection1,單擊鼠標(biāo)右鍵,在彈出的
38、菜單中選擇“添加命令,如圖16-23所示。圖 16-23 添加Command1命令16.4.3 創(chuàng)立各子窗體設(shè)置Command1通用屬性選中“Command1,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“屬性命令,在“Command1屬性對(duì)話框中,選擇“通用選項(xiàng)卡。在“數(shù)據(jù)庫(kù)對(duì)象列表框中選擇“圖書類型,如圖16-24所。 圖 16-24 Command1數(shù)據(jù)庫(kù)對(duì)象及對(duì)象名稱16.4.3 創(chuàng)立各子窗體設(shè)置Command1分組屬性選中“Command1,單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“屬性命令,在“Command1屬性對(duì)話框中,選擇“分組選項(xiàng)卡。勾選“分組命令對(duì)象,并將“圖書登記字段“類型添加到“用于分組字段,如圖19-25所示: 圖 16-25 Command1分組屬性16.4.3 創(chuàng)立各子窗體分組設(shè)置完成后的結(jié)果分組設(shè)置完成后,數(shù)據(jù)環(huán)境設(shè)計(jì)器將顯示分組后的Commnad1對(duì)象,如圖16-26所示,至此,通過(guò)“圖書登記表中字段“類型對(duì)圖書登記信息進(jìn)行分組的設(shè)置
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高新技術(shù)企業(yè)委托招聘與研發(fā)團(tuán)隊(duì)構(gòu)建合同3篇
- 2025年食材配送企業(yè)冷鏈物流服務(wù)合同3篇
- 2025版共享單車運(yùn)維服務(wù)與用戶租賃合同范本3篇
- 2025年度旅游汽車租賃及戶外活動(dòng)策劃合同4篇
- 二零二五版高端養(yǎng)殖牛場(chǎng)合伙經(jīng)營(yíng)合同3篇
- 二零二五版科技創(chuàng)新園區(qū)黨建資源共享合作協(xié)議3篇
- 2025年度煤礦設(shè)備采購(gòu)及安裝服務(wù)二零二五版合同4篇
- 鄭州城建職業(yè)學(xué)院《中國(guó)民事訴訟法》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024藥品采購(gòu)及質(zhì)量管理體系認(rèn)證合同3篇
- 2025年度市政工程承攬合同建設(shè)施工合同模板4篇
- 課題申報(bào)書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計(jì)研究
- 駱駝祥子-(一)-劇本
- 全國(guó)醫(yī)院數(shù)量統(tǒng)計(jì)
- 《中國(guó)香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺(tái)人群趨勢(shì)洞察報(bào)告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國(guó)幽門螺桿菌感染處理共識(shí)報(bào)告-
- 2024-2030年中國(guó)商務(wù)服務(wù)行業(yè)市場(chǎng)現(xiàn)狀調(diào)查及投資前景研判報(bào)告
- 高一英語(yǔ)必修一試卷(含答案)(適合測(cè)試)
- 中國(guó)的世界遺產(chǎn)智慧樹知到期末考試答案2024年
- 中國(guó)綠色食品市場(chǎng)調(diào)查與分析報(bào)告
- 手衛(wèi)生依從性調(diào)查表
評(píng)論
0/150
提交評(píng)論