![數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)課件_第1頁](http://file4.renrendoc.com/view/7e232d7b591cfab4fad2cd5b1839dd62/7e232d7b591cfab4fad2cd5b1839dd621.gif)
![數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)課件_第2頁](http://file4.renrendoc.com/view/7e232d7b591cfab4fad2cd5b1839dd62/7e232d7b591cfab4fad2cd5b1839dd622.gif)
![數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)課件_第3頁](http://file4.renrendoc.com/view/7e232d7b591cfab4fad2cd5b1839dd62/7e232d7b591cfab4fad2cd5b1839dd623.gif)
![數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)課件_第4頁](http://file4.renrendoc.com/view/7e232d7b591cfab4fad2cd5b1839dd62/7e232d7b591cfab4fad2cd5b1839dd624.gif)
![數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)課件_第5頁](http://file4.renrendoc.com/view/7e232d7b591cfab4fad2cd5b1839dd62/7e232d7b591cfab4fad2cd5b1839dd625.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)禁麓悄一倘漱啞餃寵獄逝龔易拈攘陌單乞春宵瞥摘丙神藩趨掐耕湍艦舀事第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)1第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)禁麓悄一倘漱啞餃寵獄逝龔易拈攘陌主要內(nèi)容11.1數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的基本步驟11.2學(xué)生信息管理系統(tǒng)開發(fā)案例P263韻譯淹檢矚勞盧濱者茄鎢券沿靛臻聰胖吩達頒祥者清內(nèi)絞膊卯墻魚指截映第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)2主要內(nèi)容11.1數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的基本步驟韻譯淹檢矚勞11.1數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的基本步驟1.可行性分析(是否必要)2.需求分析(信息的收集、分析整理、評審)3.概要設(shè)計(將需求分析的結(jié)果轉(zhuǎn)化為數(shù)據(jù)結(jié)構(gòu)和軟件的系統(tǒng)結(jié)構(gòu))4.詳細設(shè)計(為每一個模塊確定使用的算法和數(shù)據(jù)結(jié)構(gòu))5.代碼設(shè)計6.測試維護7.系統(tǒng)交付霄陣障溪黍威束偏逞課貼酌尊是隅看隅余羨損墅袍蕾生叼額鈣滅哉預(yù)涯個第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)311.1數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的基本步驟1.可行性分析(是否11.2學(xué)生信息管理系統(tǒng)開發(fā)案例11.2.1系統(tǒng)設(shè)計11.2.2設(shè)計工程框架11.2.3系統(tǒng)功能模塊實現(xiàn)涉譴料閘傘嫁湖瑪臼銅汁姻批殘湖涪撇巒旗瞇撰共哼撇藝衰夕佳裔飾郎屋第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)411.2學(xué)生信息管理系統(tǒng)開發(fā)案例11.2.1系統(tǒng)設(shè)計涉譴11.2.1系統(tǒng)設(shè)計1.系統(tǒng)功能分析 學(xué)生信息管理系統(tǒng)的主要任務(wù)是實現(xiàn)對學(xué)校各院系和所有學(xué)生的系統(tǒng)管理,主要功能包括:(1)院系信息管理(2)學(xué)生基本信息管理(3)學(xué)生照片管理(4)課程設(shè)置管理(5)學(xué)生成績管理(6)系統(tǒng)用戶管理醚出摻繼延戌濫幟光氦竊靶氦味梯盎哇吊膩怨陪總奇劣且襲床踐呢盛旦筒第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)511.2.1系統(tǒng)設(shè)計1.系統(tǒng)功能分析醚出摻繼延戌濫幟光氦2.功能模塊劃院系信息管理用戶信息管理學(xué)生信息管理系統(tǒng)學(xué)生基本信息管理學(xué)生照片管理學(xué)生信息管理學(xué)生成績管理課程設(shè)置管理龐半功已稀捏評昭鵲沙因墩懷虧摻凳豬擔洼加駛驚慫勘十麗掠竭舅盲豎劉第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)62.功能模塊劃院系信息管理用戶信息管理學(xué)生信息管理系統(tǒng)學(xué)生3.系統(tǒng)流程分析確定用戶類型管理自己的用戶密碼管理自己的用戶密碼管理普通用戶的信息院系信息管理學(xué)生信息管理課程信息管理學(xué)生成績管理用戶登錄失敗超過3次退出系統(tǒng)開始失敗否,重試是普通用戶系統(tǒng)用戶用戶管理模塊成功纓漁孵消元胖魔羽械壺玫濁猛駛倒意閹崗戚卒臼琢卒都寢固誦肋程轟剮休第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)73.系統(tǒng)流程分析確定用戶類型管理自己的用戶密碼管理自己的用4.數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫的設(shè)計涉及數(shù)據(jù)表字段、字段約束關(guān)系、字段間的約束關(guān)系、表間約束關(guān)系等方面。Student_db數(shù)據(jù)庫包含4個表:院系信息表D_Info學(xué)生基本信息表St_Info課程設(shè)置表C_Info選課信息表S_C_Info。增加一個用戶密碼表桂挺夜槐剮皮港零矯訟逼襖閉農(nóng)靖尿閃彈豹輛睛賦彰了閉礦鋅蕊雅凹痛淆第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)84.數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫的設(shè)計涉及數(shù)據(jù)表字段、字段約束關(guān)系、字11.2.2設(shè)計工程框架一個工程由各種類型的文件組成,如vbp(工程文件)、frm(窗體文件)、bas(標準模塊文件)等窗體、模塊和類模塊是VB的重要資源。窗體用來實現(xiàn)工程的外觀顯示模塊用來管理全局變量、變量和用戶自定義函數(shù)等。(工程\添加模塊)走莉沒識閱諜諷窟川岔逸步圖駕朝鉗悍阜種宙影秩奮散傲掇諜戳瑟黨鄭佃第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)911.2.2設(shè)計工程框架一個工程由各種類型的文件組成,如vVB的3種模塊:窗體模塊,標準模塊,類模塊窗體模塊:簡單的程序只有一個模塊,程序的代碼都存放在這個模塊中。標準模塊:為了避免重復(fù),可以將多個窗體都要用到的共同代碼集中起來,存放在一個獨立的模塊中。類模塊:是面向?qū)ο缶幊痰幕A(chǔ)。用戶可以使用類模塊創(chuàng)建含有屬性和方法的自己的對象。一般的類模塊和標準模塊都沒有可見的用戶界面(窗體)。霞廠毗鋼址雕余嬸眶赦急寡淫潤疊癡沮傈莆審將吃蘊剎遍騁夕節(jié)滄崗苛聾第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)10VB的3種模塊:窗體模塊,標準模塊,類模塊窗體模塊:簡單的標準模塊與類模塊的區(qū)別模塊(Module)就是VB中公共函數(shù)、子程序、常數(shù)、變量、枚舉和用戶定義類型的集合。模塊中的程序可以被整個程序訪問。通常,用到某個模塊的程序時,該模塊才被加載。類模塊(Class)是VB中對象的模版,它定義了對象的方法、屬性和事件。只有用類創(chuàng)建對象時,類模塊被加載。只能用對象語法操作類模塊中的程序,它是VB數(shù)據(jù)封裝的有效手段。蹲暮哼檻硅境翅瞧既涯哉渭混軋氦謬爽懶致閱簾護爽哪阻畸磨藏寫姿慰紗第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)11標準模塊與類模塊的區(qū)別模塊(Module)蹲暮哼檻硅境翅瞧既模塊文件的建立模塊命名為MStM,保存為MStM.bas文件到StuP目錄下:PublicstrCNoAsString '在窗體之間傳遞課程編號PublicvStrStIDAsStringPublicAddEditAsBoolean
'判斷是增加記錄還是修改記錄,True--添加,F(xiàn)alse--修改ConstBlockSize=2048 '數(shù)據(jù)塊的大小,用于照片的讀寫操作PublicTempFileAsString'將圖像裝入Image控件的臨時文件名的路徑變量PublicstrUserName '存儲當前登錄系統(tǒng)的用戶名,用于控制各種模塊是否能執(zhí)行PublicSubMain()TempFile="D:\tmpf.dat"mfrmMain.ShowfrmLogin.Show1'模式的作用是先執(zhí)行完frmlogin窗體才可執(zhí)行其他窗體EndSub淆貼犬淘淳這塑傳山涉佐昂瘩邱凌像俺紗糟禮邵棚鄙盛注七殼橡炙宴篷疵第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)12模塊文件的建立模塊命名為MStM,保存為MStM.bas文件11.2.3系統(tǒng)功能模塊實現(xiàn)系統(tǒng)按功能可分為:主界面模塊登錄模塊學(xué)生基本信息管理模塊學(xué)生成績管理模塊用戶管理模塊課程信息管理模塊等。濃訟昨根與疵辣貫墳胰番綸離固肄緘陌見捅哀洶嗚既領(lǐng)府汽鄒肚顴炒綏卜第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)1311.2.3系統(tǒng)功能模塊實現(xiàn)系統(tǒng)按功能可分為:濃訟昨根與疵1.主界面實現(xiàn)每腋液閘旗蓉倔件臼瑰戳享尊潔躊咖乓待撇怔贛坎匙叉惟曳牧淡磨糊愿臻第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)141.主界面實現(xiàn)每腋液閘旗蓉倔件臼瑰戳享尊潔躊咖乓待撇怔贛坎建立MDI窗體①將窗體命名為mfrmMain,其Caption屬性設(shè)置為“學(xué)生信息管理系統(tǒng)”
MDI窗體(多重窗體)是指一個包含多個子窗體的父窗體。例:窗體名.Show();一個工程只能有一個MDI,建立一個MDI后,將普通的窗體的MDIChild屬性設(shè)為真,則該窗體就變成MDI的子窗體。②建立系統(tǒng)菜單。酪鱉慰簾幕鬧眾糖掩浴寨拼奎灤扎丙熔現(xiàn)哦質(zhì)舍偷閻扶金稻謹懈誅領(lǐng)銀拐第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)15建立MDI窗體①將窗體命名為mfrmMain,其Capt2.系統(tǒng)登錄窗體設(shè)計 用戶要使用本系統(tǒng),首先必須通過系統(tǒng)的身份認證,這個過程叫做登錄。登錄過程需要完成以下任務(wù):(1)根據(jù)用戶名和密碼來判斷是否可以進入系統(tǒng);(2)根據(jù)用戶類型決定用戶擁有的權(quán)限。登錄窗體為frmLogin赫至旬億賞競懶匡顯定繡肉弦茹邪傾簾趾蕊吵忠黍圃眼侖翱偉我展?jié)a虐形第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)162.系統(tǒng)登錄窗體設(shè)計 用戶要使用本系統(tǒng),首先必須通過系統(tǒng)的(1)公用變量。在frmLogin窗體的聲明部分加入以下代碼:PublicTryTimesAsInteger變量TryTimes記錄用戶登錄嘗試次數(shù)。愚迅驚耕曼春茬蹈聽捍豆蘸朗攪婚熟捅遵討郝莖譯餐虜醇欽再杰陶養(yǎng)誤殊第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)17(1)公用變量。在frmLogin窗體的聲明部分加入以下代碼(2)身份驗證。P272代碼當用戶單擊“確定”按鈕時,將觸發(fā)cmdOk_Click事件,進行身份驗證。身份驗證時,把當前用戶輸入的用戶名和密碼(存放在txtUserName和txtPwd控件中)與數(shù)據(jù)表Users中的對應(yīng)用戶進行比較:若用戶名不正確,表示不存在該用戶,不能登錄;若只有密碼不正確,則可以嘗試三次,再不正確時,退出應(yīng)用程序。季啟畏怒王血喇根篆哈琺迎牙釩涂竅警駱兆荔翁孝味拐緊折舌畝廊鄙泵殼第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)18(2)身份驗證。P272代碼當用戶單擊“確定”按鈕時,將觸(3)取消操作。P273PrivateSubcmdCancel_Click()txtUserName=""txtPwd=""txtUserName.SetFocusEndSub(4)按回車鍵實現(xiàn)身份驗證。PrivateSubtxtPwd_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then‘回車鍵的碼值cmdOk_ClickEndIfEndSubvbKeyLButton1鼠標左鍵vbKeyRButton2鼠標右鍵vbKeyCancel3CANCEL鍵vbKeyMButton4鼠標中鍵vbKeyBack8BACKSPACE鍵vbKeyTab9TAB鍵vbKeyClear12CLEAR鍵vbKeyReturn13ENTER鍵vbKeyShift16SHIFT鍵vbKeyControl17CTRL鍵劑透釋捌塘鎬候聚竄敘葵硯煞夾琵亞踩糖謬芋釉詠螞衷比角圃繃膜壬笛益第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)19(3)取消操作。P273PrivateSubcmdCa(5)調(diào)用登錄窗體。登錄窗體的代碼設(shè)計完成后,可以在Main過程中加入以下代碼:PublicSubMain()
TempFile="D:\tmpf.dat" mfrmMain.ShowfrmLogin.Show1EndSub捻神爾船矽諸燦癸婚蘆噬已棵運舅兔稅陷東卡即授淺畸噓的叉廠脂螞策謂第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)20(5)調(diào)用登錄窗體。登錄窗體的代碼設(shè)計完成后,可以在Main(6)重新登錄。在系統(tǒng)運行過程中,若要更新用戶,則需要重要登錄。這可以通過“文件\重新登錄”菜單項調(diào)用frmLogin窗體,而不必退出系統(tǒng),其代碼如下:PrivateSubmnuReLg_Click()frmLogin.Show1EndSub其中mnuReLg為“重新登錄”菜單項控件名稱綱釣拓吮磕刑戲詹躇守劑踐沖耍韶避諒奎材復(fù)袋縱折諱坊太鞍醉懷孝暫烹第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)21(6)重新登錄。在系統(tǒng)運行過程中,若要更新用戶,則需要重要登3.學(xué)生基本信息管理模塊設(shè)計學(xué)生基本信息管理模塊實現(xiàn)以下功能:添加學(xué)生記錄;修改學(xué)生基本信息;刪除學(xué)生記錄;查看學(xué)生基本信息。獎吧邀點褪美拒疤聾衙吟然居蓑瞥惶鏈界閏擁耽恐訴倪仿曲邪隕奇簿還隊第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)223.學(xué)生基本信息管理模塊設(shè)計學(xué)生基本信息管理模塊實現(xiàn)以下功Form_Load事件(P276) 當frmStuM窗體載入時,需要使院系組合框cmbClg、班級列表框lstClass、學(xué)生列表框lstStName都顯示一個初始值:PrivateSubForm_Load()strClg=adoClg.Recordset.Fields("D_ID")adoClass.RecordSource="SELECTDISTINCTCl_NameFROMst_infoWHERE"_"SUBSTRING(St_Id,1,2)='"&strClg&"'"adoClass.RefreshstrClass=""IfNotadoClass.Recordset.EOFThenstrClass=adoClass.Recordset.Fields("Cl_Name")EndIfadoName.RecordSource="SELECT*FROMSt_InfoWHERECl_Name='"&strClass&"'"adoName.RefreshEndSub擔盈緩抑馳格鈕氫雹順壤駛禍敷現(xiàn)蒸茵肋溫決模冶咋友的緩曲枕沮遺除窩第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)23Form_Load事件(P276) 當frmStuM窗體載入(1)選擇學(xué)生記錄在frmStuM窗體中,學(xué)生的選擇通過數(shù)據(jù)綁定組合框(DataCombo)控件cmbClg確定院系,數(shù)據(jù)綁定列表框(DataList)控件lstClass確定班級,控件lstStName確定學(xué)生。死搬薩臟砷素攣蕉班腿賄薦在話謬巖孤泌泊喲綸伸豪襟卉殼孤耿暴微設(shè)忿第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)24(1)選擇學(xué)生記錄在frmStuM窗體中,學(xué)生的選擇通過數(shù)據(jù)①院系選擇。(P276)當鼠標單擊控件cmbClg時,選擇一個院系名稱,將使整個窗體數(shù)據(jù)隨之而發(fā)生改變。PrivateSubcmbClg_Change()strClg=cmbClg.BoundTextadoClass.RecordSource="SELECTDISTINCTCl_NameFROMSt_InfoWHERE"_SUBSTRING(St_Id,1,2)='"&strClg&"'"adoClass.RefreshlstClass_ClickEndSub瞻將揍馮弦粥斃勺呵域壬貨賜軀餾柒嚨要胺誘磷儒空紫鹵偷揖慚郵紫檔覺第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)25①院系選擇。(P276)當鼠標單擊控件cmbClg時,選②班級選擇。(P277)lstClass_Click事件的代碼如下:PrivateSublstClass_Click()strClass=lstClass.BoundTextIfstrClass=""AndNotadoClass.Recordset.EOFThenstrClass=adoClass.Recordset.Fields("Cl_Name")EndIfadoName.RecordSource="SELECT*FROMSt_InfoWHERECl_Name='"&strClass&"'"adoName.RefreshlstStName_ClickEndSub趾恭梢牽目愧姓鬧忙煤盜蝎月剛好藍逛維檻峪卿淘預(yù)炭漲抱臺鎢鐮都饑委第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)26②班級選擇。(P277)lstClass_Click事件③學(xué)生姓名選擇。(P277)lstStName_Click事件代碼如下:PrivateSublstStName_Click()strName=Trim(lstStName.BoundText)IfstrName=""AndNotadoName.Recordset.EOFThenstrName=adoName.Recordset.Fields("st_id")EndIfadoStDetail.RecordSource="SELECT*FROMSt_InfoWHERESt_Id='"&strName&"'"adoStDetail.RefreshCallShowImage(ImgPhoto,adoStDetail)EndSub圓熄嚇褐分是苫蛤嬸紳攪寞直吮嗚茸衷射痕龐短贏纜職曰扇虧姓塑蒂臺胸第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)27③學(xué)生姓名選擇。(P277)lstStName_Click(2)添加學(xué)生基本信息(P278)用戶單擊frmStuM的“添加學(xué)生”按鈕時,執(zhí)行cmdAdd_Click事件,其代碼如下:PrivateSubcmdAdd_Click()frmStAdd.Show1EndSubfrmStAdd窗體知陋上娶僵蓑侶唾稈和殖罰通臂鳴學(xué)式方玉湃售辰國純右砍芽設(shè)隕菊漫鈉第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)28(2)添加學(xué)生基本信息(P278)用戶單擊frmStuM的“①窗體載入。(P279)當窗體frmStAdd載入時,應(yīng)使用adoEdit控件的Recordset處于添加數(shù)據(jù)狀態(tài),其代碼如下:PrivateSubForm_Activate()adoEdit.Recordset.AddNewtxtStID.SetFocusEndSub黑府妒堂纂鋅呆想走望戚估噬刻命粥赤臂旺端癬羹慕桑芍畦赫掩倔洛狽堯第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)29①窗體載入。(P279)當窗體frmStAdd載入時,應(yīng)使②日期輸入。件txtBDate與ADOData控件adoEdit綁定,顯示St_Info表的Born_Date字段。但使用文本框輸入日期,對用戶來說很不方便,而且有可能輸入無效日期數(shù)據(jù),為此使用DateTimePicker控件為字段Born_Date提供格式化日期,使得日期選擇操作很簡單。迎故馴保偶滌糧忻廈癢萊烙焉跪蒙雷擋磁渤匪旁耕瀾帆勃鍺歷柔提惹詹努第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)30②日期輸入。件txtBDate與ADOData控件addtpBDate_Change事件(P279)選擇的日期填充到txtBDate控件中的代碼如下:PrivateSubtxtBDate_GotFocus()dtpBDate.Visible=TrueEndSubPrivateSubdtpBDate_Change()txtBDate.Text=dtpBDate.ValueEndSub誘扛瞪回紡狂資從弓心娩凡粕伺情帕癌柴曾蹤辛膜畦朔僻峨堪砂看抒亡啄第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)31dtpBDate_Change事件(P279)選擇的日期填充③性別選擇。與日期型數(shù)據(jù)相似,性別的選擇可以使用ComboBox控件并綁定在adoEdit控件記錄集的St_Sex字段上,其List屬性在設(shè)計時輸入男女兩個選項,運行時用戶可在下拉列表中選擇,即方便快捷又不容易出錯。靴氧抗刪侗飄府身蛻幸儒逐邁免漢吁姜費造醫(yī)琉紗竅址球志程犀場料哮摻第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)32③性別選擇。與日期型數(shù)據(jù)相似,性別的選擇可以使用Combo④電話號碼輸入。(P280)電話號碼為數(shù)字字符,在輸入時應(yīng)限制用戶只能輸入數(shù)字0~9,這可通過函數(shù)In_Int進行數(shù)據(jù)檢查,在txtTel_KeyPress事件中實現(xiàn)PrivateSubtxtTel_KeyPress(KeyAsciiAsInteger)IfIn_Int(KeyAscii)=FalseThenMsgBox"電話號碼應(yīng)為數(shù)字",,"輸入錯誤"KeyAscii=0EndIfEndSubPublicFunctionIn_Int(KeyAsciiAsInteger)AsBooleanIfChr(KeyAscii)>="0"AndChr(KeyAscii)<="9"ThenIn_Int=TrueElseIn_Int=FalseEndIfEndFunction穢汐肢峪茄磋寵蝴輾雌恢畜姬瘤韭南翔增孫惶芝橢荊本屯旁羞卿吟畜她貧第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)33④電話號碼輸入。(P280)電話號碼為數(shù)字字符,在輸入時應(yīng)⑤數(shù)據(jù)保存。(P280)當用戶在frmStAdd窗體上完成了所有數(shù)據(jù)的輸入后,通過ADOData控件的Recordset方法Update將數(shù)據(jù)保存到表St_Info中,該操作由命令按鈕cmdAdd_Click事件實現(xiàn),其代碼如下:PrivateSubcmdAdd_Click()IftxtStID=""OrtxtStName=""OrtxtClName=""ThenMsgBox"學(xué)號、姓名或班級不能為空!",,"數(shù)據(jù)輸入錯誤"ExitSubEndIfadoEdit.Recordset.UpdateadoEdit.Recordset.MoveLastfrmStuM.adoStDetail.RefreshfrmStuM.RcdUpdate(adoEdit.Recordset.Fields("St_Id"))UnloadMeEndSub百摯蚜韓轍糧訊幕鮑遏宣誰凍標鼻淆瞇畦層縷干券估榆酪閻朽昆燥遁幌秤第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)34⑤數(shù)據(jù)保存。(P280)當用戶在frmStAdd窗體上完成frmStuM窗體的RcdUpdate過程(P280)SubRcdUpdate(ByValvStIDAsString)strClg=Left(Trim(vStID),2)adoClass.RecordSource="SELECTDISTINCTCl_NameFROMSt_Info"_&"WHERESUBSTRING(St_Id,1,2)='"&strClg&"'"adoClass.RefreshadoName.RecordSource="SELECT*FROMSt_InfoWHERECl_Name="_&"(SELECTDISTINCTCl_NameFROMSt_InfoWHERESt_Id='"&Trim(vStID)&"')"adoName.RefreshadoStDetail.RecordSource="SELECT*FROMSt_InfoWHERESt_Id='"&Trim(vStID)&"'"adoStDetail.RefreshadoStDetail.Recordset.Find"St_Id='"&vStID&"'"EndSub郵衛(wèi)淑咐砷四疽羽記拘拼鵝騁訓(xùn)祁淬晶渾樸洲恍柵祝似站剪粗謅蝴鞏浴享第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)35frmStuM窗體的RcdUpdate過程(P280)Su(3)修改學(xué)生記錄的功能實現(xiàn)(P281)當前單擊frmStuM窗體的“修改信息”按鈕,執(zhí)行cmdEdit_Click事件,其代碼如下:PrivateSubcmdEdit_Click()vStrStID=Trim(adoStDetail.Recordset.Fields("St_Id"))frmStEdit.Show1EndSub庶被公魂齡撫畫笑咽環(huán)牡頃躥呢活圖態(tài)俊扒額庇慮覺慨黨繼淘妓糠盾輕泌第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)36(3)修改學(xué)生記錄的功能實現(xiàn)(P281)當前單擊frmStufrmStEdit窗體用于顯示當前選擇的學(xué)生基本信息,并進行數(shù)據(jù)的修改。(P281)PrivateSubForm_Load()adoEdit.RecordSource="SELECT*FROMSt_InfoWHERESt_Id='"&vStrStID&"'"adoEdit.RefreshEndSub主蔣霧比凰更尾戀改陋幕潛續(xù)辱寡估別潦哦靠掉豆嚼舜喧賴蠱赤槳筋坊逢第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)37frmStEdit窗體用于顯示當前選擇的學(xué)生基本信息,并進行(4)刪除學(xué)生記錄(P281)當用戶單擊frmStuM窗體的“刪除學(xué)生”按鈕時,將觸發(fā)cmdDel_Click事件:PrivateSubcmdDel_Click()'檢查是否選擇要刪除的學(xué)生記錄IflstStName.BoundText=""ThenMsgBox"請選擇要刪除的學(xué)生",,"刪除學(xué)生"ExitSubEndIfIfMsgBox("學(xué)生姓名:"+lbName+Chr(13),vbYesNo,"是否刪除")=vbNoThenExitSubEndIfadoStDetail.Recordset.DeleteadoStDetail.Recordset.MoveNextlstClass_ClickEndSub閣征妄漱賺周淳淹谷占儲齒舞茨釉雕膛彼黎嘛磺斧撂疲簡情緊蝕匣餌蛹詞第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)38(4)刪除學(xué)生記錄(P281)當用戶單擊frmStuM窗體的(5)照片管理照片管理包括照片的顯示、添加、刪除等功能。①顯示與存儲照片子過程。 設(shè)計兩個過程ShowImage和SaveImage,用來管理數(shù)據(jù)庫讀寫圖像字段的操作,其代碼如下:磚藻浩參肢扳淆芳撫并置捻惋尸俏政奸戳棚西溪卸欲離丑霧供蜜仟笆鐵油第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)39(5)照片管理照片管理包括照片的顯示、添加、刪除等功能。磚藻過程ShowImage(P282)PublicSubShowImage(Image1AsImage,Adodc1AsAdodc)DimByteChunk()AsByteFieldSize=Adodc1.Recordset.Fields("Photo").ActualSize IfFieldSize<=0ThenImage1.Picture=LoadPicture("")ExitSubEndIfSourceFile=FreeFileOpenTempFileForBinaryAccessWriteAsSourceFileNumBlocks=FieldSize\BlockSizeLeftOver=FieldSizeModIfLeftOver<>0ThenReDimByteChunk(LeftOver)AsByteByteChunk()=Adodc1.Recordset.Fields("Photo").GetChunk(LeftOver)PutSourceFile,,ByteChunk()EndIfFori=1ToNumBlocksReDimByteChunk(BlockSize)AsByteByteChunk()=Adodc1.Recordset.Fields("Photo").GetChunk(BlockSize)PutSourceFile,,ByteChunk()NextiCloseSourceFileImage1.Picture=LoadPicture(TempFile)Kill(TempFile)EndSub盯竣蔭蚊輯蛤萍砧吏變汰蔚幌問芽葛噶豺破苑雌墨億不陡幫員韋罕堂塵琵第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)40過程ShowImage(P282)PublicSubSSaveImage過程(P283)PublicSubSaveImage(ByValImageFileAsString,Adodc1AsAdodc)IfAdodc1.Recordset.BOF=TrueOrAdodc1.Recordset.EOF=TrueThenExitSubEndIfIfImageFile=""ThenExitSubEndIfSourceFile=FreeFileOpenImageFileForBinaryAccessReadAsSourceFile '打開文件FileLength=LOF(SourceFile)IfFileLength=0ThenCloseSourceFileMsgBoxdisfile&"無內(nèi)容或不存在!"ElseNumBlocks=FileLength\BlockSizeLeftOver=FileLengthModBlockSize '得到剩余字節(jié)數(shù)Adodc1.Recordset.Fields("photo").Value=NullReDimByteData(BlockSize)AsByte '重新定義數(shù)據(jù)塊的大小Fori=1ToNumBlocksGetSourceFile,,ByteData() '讀到內(nèi)存塊中Adodc1.Recordset.Fields("photo").AppendChunkByteData()'寫入FLDNextiReDimByteData(LeftOver)AsByte '重新定義內(nèi)存塊的大小GetSourceFile,,ByteData() '讀到內(nèi)存塊中Adodc1.Recordset.Fields("photo").AppendChunkByteData()'寫入FLDCloseSourceFileAdodc1.Recordset.UpdateEndIfEndSub漳蝕功罰朱薔容結(jié)牢鶴濟眨洽繞試淀乙廢鎮(zhèn)鮑猖椰鞘累絢召丙酥凜鵲瑪廄第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)41SaveImage過程(P283)PublicSubS②建立照片管理快捷菜單。在frmStuM窗體中,ImgPhoto控件用于顯示學(xué)生照片,當鼠標右擊ImgPhoto控件時,彈出快捷菜單,快捷菜單由窗體frmPhotoMenu構(gòu)成申陋埋駝憐慕渺廉三戚仍昔掩步癸駛商螞準餌慌遏聊恥竿忍搞歇爸厚興假第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)42②建立照片管理快捷菜單。在frmStuM窗體中,ImgPLabel1_Click事件實現(xiàn)添加照片功能(P284)PrivateSubLabel1_Click()DimDiskFileAsStringCommonDialog1.Filter="JPEG文件(*.jpg)|*.jpg|BMP文件(*.bmp)|*.bmp|GIF文件(*.gif)|*.gif"CommonDialog1.ShowOpenDiskFile=CommonDialog1.FileNameIfDiskFile=""ThenMsgBox"請選擇照片文件",,"照片管理"UnloadMeExitSubEndIfCallSaveImage(DiskFile,frmStuM.adoStDetail)CallShowImage(frmStuM.ImgPhoto,frmStuM.adoStDetail)UnloadMeEndSub梅剩杰督沿鏡框鐐徘酬賦鏟擅先布鳳癡來胎甲冀哨矩坍搓腳居考朵葵宴褂第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)43Label1_Click事件實現(xiàn)添加照片功能(P284)PrLabel2_Click事件實現(xiàn)刪除照片(P285)PrivateSubLabel2_Click()frmStuM.adoStDetail.Recordset.Fields("photo").AppendChunk""frmStuM.adoStDetail.Recordset.UpdatefrmStuM.ImgPhoto.Picture=LoadPicture("")UnloadMeEndSub姥殿賂撾囪瞞撲鉛瘦換蛛糜帆炳世馱博鳳賣蓑別火蔡灣悼汲蔓擒辟事歌虛第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)44Label2_Click事件實現(xiàn)刪除照片(P285)Priv③彈出快捷菜單。(P285)當鼠標右擊frmStuM窗體的ImgPhoto控件時,通過ImgPhoto_MouseDown事件過程實現(xiàn)快捷菜單的彈出操作PrivateSubImgPhoto_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=1ThenIffrmPhotoMenu.Visible=TrueThenUnloadfrmPhotoMenuEndIfEndIfIfButton=2ThenIffrmStuM.adoStDetail.Recordset.EOF=TrueOrfrmStuM.adoStDetail.Recordset.BOF=TrueThenExitSubEndIffrmPhotoMenu.Left=X+ImgPhoto.Left+2000frmPhotoMenu.Top=Y+ImgPhoto.Top+500frmPhotoMenu.ShowEndIfEndSub削淹虹情稚含能勉拷伊庇唱惱像咕屎斃箔雀屢陀梗趟雌殆昨油透墟軸真泡第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)45③彈出快捷菜單。(P285)當鼠標右擊frmStuM窗體(6)通過主界面調(diào)用學(xué)生基本信息管理窗體(P285)當設(shè)計好了學(xué)生基本信息管理窗體frmStuM后,就可以通過主界面mfrmMain窗體的“學(xué)生信息”菜單項來調(diào)用它,其代碼如下:PrivateSubmnuStInfo_Click()frmStuM.ShowEndSub錫嘗橇抄淹認戶喀療圖芥菊霧儉魂窿柏哄精驗佯成腋甄僅乖錐激紉鴻鋇靴第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)46(6)通過主界面調(diào)用學(xué)生基本信息管理窗體(P285)當設(shè)計好4.課程設(shè)置課程設(shè)置管理模塊可以實現(xiàn)以下功能:添加課程信息;修改課程信息;刪除課程信息;查看課程信息。臂勉羞死泣孿戍絳藝拍鵬族壞達咬哇挨藍畏鍺個祝享窟宴油頌?zāi)渑R乞瞇第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)474.課程設(shè)置課程設(shè)置管理模塊可以實現(xiàn)以下功能:添加課程信息在Form_Load事件(P287)PrivateSubForm_Load()adoCourseLst.RecordSource="SELECT*FROMC_InfoORDERBYC_Name"adoCourseLst.RefreshlstCName_ClickEndSub詭蜜磐蛙神鈍喳咨閹藹泛沼暮去鋅戳廖喧介綽骯揚貨慣忘溪夷賤欲春裔呀第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)48在Form_Load事件(P287)PrivateSublstCName_Click事件過程PrivateSublstCName_Click()strCNo=Trim(lstCName.BoundText)IfstrCNo=""ThenIfNotadoCourseLst.Recordset.EOFOrNotadoCourseLst.Recordset.BOFThenstrCNo=Trim(adoCourseLst.Recordset.Fields("C_No"))EndIfEndIfadoCourse.RecordSource="SELECT*FROMC_InfoWHEREC_No='"_&strCNo&"'ORDERBYC_Name"adoCourse.RefreshEndSub皖飛叮鄲捷櫥聯(lián)冠冰堿濘忙惡裁署美烙賜天你唁系黃碾滔鍋盡毋漿壕驟課第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)49lstCName_Click事件過程PrivateSub(1)添加修改課程信息剁憫族臃臨纂購午膠殺日秩掀簇懦通技蒼咱喧渠瞄鎊簍狙軸吹屹熄簇刪譚第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)50(1)添加修改課程信息剁憫族臃臨纂購午膠殺日秩掀簇懦通技蒼咱①添加與修改課程記錄。 當用戶單擊frmCourseM窗體的“添加課程”按鈕時,設(shè)置AddEdit變量值為True,調(diào)用frmCourseEdit窗體PrivateSubcmdAdd_Click()AddEdit=True '添加記錄frmCourseEdit.Show1EndSub姻您復(fù)唁騾芹膊莉榨涪甫知浪晤拇薊還垣姥野使溉篩刨爍守斥辦漲盆立負第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)51①添加與修改課程記錄。 當用戶單擊frmCourseM窗修改課程當用戶單擊frmCourseM窗體的“修改課程”按鈕時,設(shè)置AddEdit變量值為False,也調(diào)用frmCourseEdit窗體PrivateSubcmdEdit_Click()AddEdit=FalsestrCNo=lstCName.BoundTextIfstrCNo=""ThenMsgBox"請選擇課程",,"信息"ExitSubEndIffrmCourseEdit.Show1EndSub拷屆患氯乏禁延擄園陡配墳公丁磚剔冰崩藻寂細坤濺制置鴉寅瓦寸票鄧倆第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)52修改課程當用戶單擊frmCourseM窗體的“修改課程”按鈕②建立編輯課程信息窗體。frmCourseEdit窗體載入時,根據(jù)AddEdit的值確定該窗體是添加記錄還是修改已有記錄。DimmBookmarkAsVariantPrivateSubForm_Load()IfAddEditThenadoLesson.Recordset.AddNewElseadoLesson.RecordSource="SELECT*FROMC_InfoWHEREC_No='"&strCNo&"'"adoLesson.RefreshEndIfmBookmark=adoLesson.Recordset.BookmarkEndSub解增默共驗錄集共惰臂荷烯改副懂毫芯溯單燥崔倆蒙禁吶懊理仰灶爽瑩般第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)53②建立編輯課程信息窗體。frmCourseEdit窗體載入③保存編輯的課程信息。當用戶在frmCourseEdit窗體輸入或修改了課程信息后,單擊“確認”按鈕以保存信息,cmdOk_Click事件代碼如下:PrivateSubcmdOk_Click()IfTrim(txtCCredit.Text)=""OrTrim(txtCNo.Text)=""OrTrim(txtCName.Text)=""ThenMsgBox"數(shù)據(jù)不完整,課程編號、課程名稱或?qū)W分不能為空!",,"輸入錯誤"ExitSubEndIfadoLesson.Recordset.UpdateadoLesson.Recordset.MoveLastfrmCourseM.RcdUpdate(Trim(txtCNo.Text))UnloadMeEndSub墨謾淪鮑業(yè)呢扳頃憊贖掉政瑪途娟柵懾婆擲閩錦牟幾源滾恥欄擒鍛培義唯第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)54③保存編輯的課程信息。當用戶在frmCourseEdit窗frmCourseM.RcdUpdate過程PublicSubRcdUpdate(ByValvStrCNoAsString)adoCourseLst.RecordSource="SELECT*FROMC_InfoORDERBYC_Name"adoCourseLst.RefreshadoCourse.RecordSource="SELECT*FROMC_InfoWHEREC_No='"_&vStrCNo&"'ORDERBYC_Name"adoCourse.RefreshadoCourseLst.Recordset.Find"c_no='"&vStrCNo&"'"EndSub惶只闖銹舞煉捐碩右呈思膳爹刮蓄糙瞪玉慧長撐愚辛浩暇峽煽傀閻當至御第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)55frmCourseM.RcdUpdate過程Public(2)刪除課程信息當用戶單擊frmCourseM窗體的“刪除課程”按鈕,觸發(fā)cmdDel_Click事件PrivateSubcmdDel_Click()IfTrim(lstCName.BoundText)=""ThenMsgBox"請選擇要刪除的課程"ExitSubEndIfIfMsgBox("課程名稱:"+lstCName.Text+Chr(13),vbYesNo,"是否刪除")=vbNoThenExitSubEndIfadoCourse.Recordset.DeleteadoCourseLst.RecordSource="SELECT*FROMC_InfoORDERBYC_Name"adoCourseLst.RefreshadoCourse.RecordSource="SELECT*FROMC_InfoWHEREC_No='"_&Trim(adoCourseLst.Recordset.Fields("c_no"))&"'ORDERBYC_Name"adoCourse.RefreshEndSub填躇翌嶄隸澆例慶孫訟卞豬蟬板閩茬鳴政嚎披坑迂蜘丘拙矛勢札鴉欲寫斡第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)56(2)刪除課程信息當用戶單擊frmCourseM窗體的“刪除(3)課程設(shè)置模塊的調(diào)用課程設(shè)置由mfrmMain窗體的“課程信息”菜單項控件mnuCourse調(diào)用,其代碼如下:PrivateSubmnuCourse_Click()frmCourseM.ShowEndSub字型必怕間次涯邀急桶礫暢丙迭琳棟狹饒華釁檄續(xù)蝗低流紹淪丹你簍磷甄第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)57(3)課程設(shè)置模塊的調(diào)用課程設(shè)置由mfrmMain窗體的“課5.成績管理學(xué)生成績管理包含兩個子菜單:成績編輯與成績查詢。成績編輯實現(xiàn)添加、刪除、修改學(xué)生成績等功能,成績查詢可以查詢一個學(xué)生所有選修課程的成績。迄濤翁說玖競蛋匈羞叛砸瞬棺幼叔盞甫玖剔聽股涵葛岳責(zé)宏鼻絢寡翰仟棲第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)585.成績管理學(xué)生成績管理包含兩個子菜單:成績編輯與成績查詢(1)成績編輯成績編輯窗體命名為frmScoreM堪缽纖盈衷何褐幟視遂擄峨咐闖懇喇逸艇橡攀肢行德梧啟磨籬兜贅閹踞問第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)59(1)成績編輯成績編輯窗體命名為frmScoreM堪缽纖盈①窗體載入。PrivateSubForm_Load()adoDCScore.RecordSource="SELECTDISTINCTCl_NameFROMSt_Info"adoDCScore.RefreshWhileNotadoDCScore.Recordset.EOFcmbCls.AddItem(adoDCScore.Recordset.Fields("Cl_Name"))adoDCScore.Recordset.MoveNextWendstrCNo=adoCourse.Recordset.Fields("C_No")RefreshGridEndSub淡邵氧窮椎崖竭黍粕尚桌泰醚慚藹郴腳盡坍堰箋膊偵銥賽峪憊陵烙稻效恤第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)60①窗體載入。PrivateSubForm_Load(②DataGrid控件刷新子過程。RefreshGrid過程用于DataGrid控件顯示數(shù)據(jù)的刷新,其代碼如下:SubRefreshGrid()adoDCScore.RecordSource="SELECTs.St_Idas學(xué)號,s.St_Nameas姓名,"_&"sc.Scoreas成績FROMSt_Infos,S_C_Infosc"_&"WHEREs.Cl_Name='"+Trim(cmbCls.Text)_&"'ands.St_Id=sc.St_Idandsc.C_No='"_&Trim(strCNo)&"'"adoDCScore.RefreshgrdScore.RefreshEndSub嫡胞駕等軀訃家多涉裕赴龔罩遣耙訊盈蹦霄胞煙建伯敏客獅蛾它鑒板闡捆第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)61②DataGrid控件刷新子過程。RefreshGrid過③班級選擇。當用戶單擊控件cmbCls選擇某一班級時,將觸發(fā)cmbCls_Click事件,在grdScore中顯示該所有學(xué)生的cmbCName控件所選擇的課程的成績PrivateSubcmbCls_Click()RefreshGridIfadoDCScore.Recordset.EOFAndadoDCScore.Recordset.BOFThenMsgBoxcmbCls.Text&"無"&cmbCName.Text&"成績",,"成績信息"EndIfEndSub
袋喇藐漁貼哥攜辦熾幸詣勃莽拆蛹則奔吱屠蕾蛆徑趨棟源閃遏仿越勢亭焉第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)62③班級選擇。當用戶單擊控件cmbCls選擇某一班級時,將④課程選擇。當用戶單擊cmbCName控件,重新選擇課程名稱時,觸發(fā)cmbCName_Change事件,在grdScore中重置該課程、cmbCls控件所班級的所有學(xué)生的成績PrivateSubcmbCName_Change()strCNo=cmbCName.BoundTextRefreshGridEndSub崩逃幅茶淮征里惱怎蔗燒攤遲渡省以廚販港貯刁產(chǎn)蘸吱汐蔑嘲賢稍臨屋郴第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)63④課程選擇。當用戶單擊cmbCName控件,重新選擇課程名⑤成績編輯。當用戶單擊“添加成績”時,將調(diào)用frmScoreEdit窗體為cmbCls所選班級的學(xué)生添加cmbCName控件所選課程的成績PrivateSubcmdAdd_Click()IfcmbCName.Text=""OrcmbCls.Text=""ThenMsgBox"請選擇課程名稱與班級",,"添加成績"ExitSubEndIfAddEdit=TruefrmScoreEdit.Show1RefreshGridEndSub腳淹苫澆整砰描割嫂燒扭饅跺冗訪趕詳仍廖列尾迎取燭桔鍺壩謂掙薦樞抵第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)64⑤成績編輯。當用戶單擊“添加成績”時,將調(diào)用frmSco修改成績當用戶單擊“修改成績”按鈕時,將在frmScoreEdit窗體上顯示在frmScoreM窗體的grdScore網(wǎng)格中選擇的學(xué)生為成績信息給用戶修改PrivateSubcmdEdit_Click()IfadoDCScore.Recordset.EOFAndadoDCScore.Recordset.BOFThenMsgBox"請選擇學(xué)生成績",,"修改成績"ExitSubEndIfAddEdit=FalsefrmScoreEdit.Show1RefreshGridEndSub違奏哆堪虱狹稻籍捂秸酪梅本仍兌雪部恐案銻龜彬吻鈍潛而街抖歧孫差艾第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)65修改成績當用戶單擊“修改成績”按鈕時,將在frmScoreE⑥建立成績編輯窗體。尖豁真敵邊架嫩蜜洱鑄決撾樊骯企熱熙痞蠢孫鞭臟貉往駭甩堯團偵呻萬債第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)66⑥建立成績編輯窗體。尖豁真敵邊架嫩蜜洱鑄決撾樊骯企熱熙痞蠢初始化窗體DimstrCidAsStringDimstrCourseAsStringDimstrClNameAsStringDimstrStIDAsStringPrivateSubForm_Load()strClName=Trim(frmScoreM.cmbCls.Text)strCourse=Trim(frmScoreM.cmbCName.Text)strCid=Trim(frmScoreM.cmbCName.BoundText)lbCName.Caption=strCourselbClass.Caption=strClNameIfAddEditThenadoStName.RecordSource="SELECT*FROMSt_InfoWHERECl_Name='"&strClName_&"'ANDSt_IdNOTIN(SELECTSt_IdFROMS_C_InfoWHEREC_No='"_&strCid&"')"adoStName.RefreshadoScore.RecordSource="SELECT*FROMS_C_info"adoScore.RefreshtxtScore=""ElsestrStID=frmScoreM.adoDCScore.Recordset.Fields("學(xué)號")adoStName.RecordSource="SELECT*FROMSt_InfoWHERESt_Id='"&strStID&"'"adoStName.RefreshadoScore.RecordSource="SELECT*FROMS_C_InfoWHERESt_Id='"&strStID_&"'ANDC_No='"&strCid&"'"adoScore.RefreshcmbStName.Text=adoStName.Recordset.Fields("St_Name")txtScore=adoScore.Recordset.Fields("Score")EndIfEndSub濱屹采念輯斟哀慣困靶氛歧侗淳唆幢嚏陜森宇豈五??蚱咭手螌s汲等第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)67初始化窗體DimstrCidAsString濱屹采念輯cmdOk_Click事件當用戶單擊frmScoreEdit窗體的“確定”按鈕時,觸發(fā),將保存用戶添加或修改后的數(shù)據(jù)到S_C_Info表中PrivateSubcmdOk_Click()IfcmbStName.Text=""OrtxtScore=""ThenMsgBox"沒有選擇學(xué)生或沒有成績",,"添加成績"ExitSubEndIfIfAddEditThenadoScore.Recordset.AddNewadoScore.Recordset.Fields("St_Id")=Trim(adoStName.Recordset.Fields("st_id"))adoScore.Recordset.Fields("C_No")=Trim(strCid)adoScore.Recordset.Fields("Score")=txtScoreadoScore.Recordset.UpdateadoStName.RecordSource="SELECT*FROMSt_InfoWHERECl_Name='"&strClName_&"'ANDSt_IdNOTIN(SELECTSt_IdFROMS_C_InfoWHEREC_No='"_&strCid&"')"adoStName.RefreshtxtScore=""ElseadoScore.Recordset.Fields("Score")=txtScoreadoScore.Recordset.UpdateEndIfEndSub辮骯硫昂繁綻蓄爽戲彎檬己攜壩恕穆屠嘆艾零肢免泌搜輛敞慮肇伶祿淹潛第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)68cmdOk_Click事件當用戶單擊frmScoreEdit⑦成績刪除。當用戶單擊frmScoreM窗體“刪除成績”按鈕時,觸發(fā)cmdDel_Click事件PrivateSubcmdDel_Click()IfadoDCScore.Recordset.BOFAndadoDCScore.Recordset.EOFThenMsgBox"請選擇要刪除的成績",,"刪除成績"ExitSubEndIfIfMsgBox("學(xué)生姓名:"+adoDCScore.Recordset.Fields("姓名")+Chr(13),_vbYesNo,"是否刪除")=vbNoThenExitSubEndIfstrStID=adoDCScore.Recordset.Fields("學(xué)號")strCNo=Trim(cmbCName.BoundText)adoDCScore.RecordSource="SELECT*FROMS_C_InfoWHEREST_id='"&strStID_&"'ANDC_No='"&strCNo&"'"adoDCScore.RefreshadoDCScore.Recordset.DeleteRefreshGridEndSub守韌疵脆肖聞舟喜灤茨丈涌闊液石椅啪賓按喀蓋喝視深趾欣敬茍撕病釀拜第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)69⑦成績刪除。當用戶單擊frmScoreM窗體“刪除成績”按(2)成績查詢frmScoreQ窗體泛逸球豆觸堆鍛黍盲計窖淳察告燈潑累古塔供叢箍卞駁瘸耐炮殲翟臍噬淬第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)70(2)成績查詢frmScoreQ窗體泛逸球豆觸堆鍛黍盲計窖Form_Load事件PrivateSubForm_Load()adoDCScore.RecordSource="SELECTDISTINCTCl_NameFROMSt_Info"adoDCScore.RefreshWhileNotadoDCScore.Recordset.EOFcmbCls.AddItem(adoDCScore.Recordset.Fields("Cl_Name"))adoDCScore.Recordset.MoveNextWendcmbCls.ListIndex=0cmbCls_ClickSetgrdScore.DataSource=adoDCScorevStrStID=adoStName.Recordset.Fields("St_Id")RefreshGridEndSub渺從夠肺系渾渾毫汀爹瑩央甲弓了拎烈訊紉捉挨示夾柯憾鞭話亞捉篙寶擦第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)71Form_Load事件PrivateSubForm_L班級通過cmbCls.AddItem方法添加到組合框的List中PrivateSubcmbCls_Click()adoStName.RecordSource="SELECT*FROMSt_InfoWHERECl_Name='"_&Trim(cmbCls.Text)&"'"adoStName.RefreshadoStName.Recordset.MoveFirstcmbStName_Click0EndSub污捐證偷邦診佬馬隔掖離亢巳夯渙蝴捉賠囤糠妙賞埂資儀漣佛正龔吃纖臟第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)72班級通過cmbCls.AddItem方法添加到組合框的Lis使當前記錄為第一條cmbStName_Click事件PrivateSubcmbStName_Click(AreaAsInteger)vStrStID=cmbStName.BoundTextRefreshGridEndSub汽雪株守嫩套餓貶貍留垣萎空摟棚隴扎曰餓魔勿首得欣才逮挨問糕糖階策第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)73使當前記錄為第一條cmbStName_Click事件汽雪株RefreshGrid過程cmbStName.BoundText的綁定值為顯示的學(xué)生姓名的對應(yīng)學(xué)號,以此通過RefreshGrid過程更新grdScore的數(shù)據(jù)為選定班級選定學(xué)生的所修課程的成績。
SubRefreshGrid()adoDCScore.RecordSource="SELECTc.C_NoAS課程編號,c.C_NameAS課程名稱,"_&"sc.ScoreAS成績FROMC_Infoc,S_C_Infosc"_&"WHEREsc.C_No=c.C_NoANDsc.St_Id='"&Trim(vStrStID)&"'"adoDCScore.RefreshgrdScore.RefreshEndSub多舜足難宦?lián)厶敯⑼珢厶税蚍统谭睍該扑蹪矁|踢糟注算實器珍薯把帥疾第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)74RefreshGrid過程cmbStName.BoundTe6.用戶管理根據(jù)用戶類型的不同,用戶管理模塊的功能也不相同,可以包含以下情形:(1)系統(tǒng)管理員(用戶名為admin)用戶可以創(chuàng)建普通用戶,對普通用戶的用戶名和密碼進行修改,刪除普通用戶;(2)admin用戶也可以修改自身的密碼;(3)普通用戶只能修改自身的密碼。鰓凰顯將武韓吐滯莽蝸劣閏冊畜秋伸揮冰烙汞空琉娠諄言壁鹼唯餃廓退鎳第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)756.用戶管理根據(jù)用戶類型的不同,用戶管理模塊的功能也不相同frmUserM窗體初始化PrivateSubForm_Load()IfstrUserName="admin"ThenlbUserType="系統(tǒng)管理員"ElselbUserType="普通用戶"EndIfEndSub懲諧跡產(chǎn)掩大抽溝誦飽孝乃宵取憚勵毖桶瓣組貓廂挑子凡婪撈川置晾坤秀第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)第11章數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)76frmUserM窗體初始化PrivateSubForm_(1)查看用戶信息PrivateSublstUserName_Click()'如果沒有選擇用戶名,則返回IfTrim(lstUserName.Text)=""ThenExitSubEndIf'設(shè)置用戶名lbUserName=Trim(lstUserName.BoundText)'設(shè)置用戶類型IflbUserName="admin"ThenlbUserType="系統(tǒng)管理員"ElselbUserType="普通用戶"EndIfEnd
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水資源管理服務(wù)行業(yè)智能化水資源開發(fā)利用方案
- 2025年重慶貨運從業(yè)資格證試題
- 2024年領(lǐng)軍高考物理一輪復(fù)習(xí)專題11.3機械能提高訓(xùn)練含解析
- 2024年新教材高中生物單元素養(yǎng)評價二含解析新人教版必修2
- 2024-2025學(xué)年高中歷史課下能力提升二十五工業(yè)革命時代的浪漫情懷含解析人民版必修3
- 湘師大版道德與法治九年級上冊5.2.2《公平正義促和諧》聽課評課記錄
- 多人合伙經(jīng)營合同范本
- 電子商務(wù)半年工作總結(jié)
- 委托出租鋪面協(xié)議
- 特種設(shè)備委托檢驗檢測協(xié)議書范本
- 2024年09月2024年中國農(nóng)業(yè)發(fā)展銀行總行部門秋季校園招聘(22人)筆試歷年參考題庫附帶答案詳解
- 2025年北京生命科技研究院招聘筆試參考題庫含答案解析
- 銀行金融機構(gòu)銀行金融服務(wù)協(xié)議
- GB/T 27697-2024立式油壓千斤頂
- 《消防機器人相關(guān)技術(shù)研究》
- 2024年考研政治真題及答案
- 【直播薪資考核】短視頻直播電商部門崗位職責(zé)及績效考核指標管理實施辦法-市場營銷策劃-直播公司團隊管理
- 項目設(shè)計報告范文高中
- 《千年古村上甘棠》課件
- 部編版小學(xué)語文二年級下冊電子課文《小馬過河》
- 《醫(yī)療機構(gòu)工作人員廉潔從業(yè)九項準則》專題解讀
評論
0/150
提交評論