




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE 47XX職業(yè)技術(jsh)學院 畢業(yè)論文(b y ln wn)(設計)系 別專 業(yè)班 級姓 名學 號課 題指導教師【摘 要】學生學籍管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)(kif)主要包括后臺數據庫的建立和維護以及前端應用程序的開發(fā)兩個方面。對于前者要求建立起數據一致性和完整性強、數據安全性好的庫。而對于后者則要求應用程序功能完備,易使用等特點。經過分析,我使用 MICROSOFT公司的 VISUAL BASIC開發(fā)工具,利用其提供的各種面向對象的開發(fā)工具,尤其是數據窗口這一能方便而簡潔操縱數據庫的智能化對象,首先在短時間內建立系統(tǒng)應用原型,然后,對初始原型系統(tǒng)進行
2、需求(xqi)迭代,不斷修正和改進,直到形成用戶滿意的可行系統(tǒng)?!娟P鍵字:】控件 窗體 域 ABSTRACTThe system of managing student file is a typical application of managing information system (know as MIS),which mainly includes building up data-base of back-end and developing the application interface of front-end. The former required consisten
3、cy and integrality and security of data. The later should make the application powerful and easily used. By looking up lots of datum, I selected Visual Basic presented by Microsoft because of its objective tools in Win32. VB offered a series of ActiveX operating a database. It can give you a short c
4、ut to build up a prototype of system application. The prototype could be modified and developed till users are satisfied with it. Keywords:ActiveX Form Field 目 錄1、前言 62、 系統(tǒng)(xtng)概述 711 開發(fā)(kif)背景712 學籍(xuj)管理系統(tǒng)概述713 開發(fā)環(huán)境及開發(fā)工具介紹7131開發(fā)環(huán)境 8132 開發(fā)工具93、 設計總體規(guī)劃1121 數據庫設計1122 設計流程圖1123設計功能分析134、 設計具體實現 1431
5、 準備工作 1532 模塊設計 1733 用戶界面的實現 18331 登陸(dng l)界面(frmlogin) 19332 MDI主窗體(frmmain)20333 用戶(yngh)管理窗體(frmmanage)18334 修改(xigi)密碼窗體(frmchgPWD)24335 瀏覽學生信息窗體(frmstu)36336添加/修改學生信息窗體(frmAddstu)37337學生學籍管理模塊 38338 報表功能模塊39主要參考文獻43 1、前 言學生學籍管理系統(tǒng)是一個教育單位不可缺少的部分,它的內容對于學校的決策者和管理者來說都至關重要,所以學生學籍管理系統(tǒng)應該能夠為用戶提供充足的信息和快
6、捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件學籍,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。 隨著科學技術的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領域并發(fā)揮著越來越重要的作用。 作為計算機應用的一部分,使用計算機對學生學籍信息進行管理,具有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學生學籍管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。 因此(ync),開發(fā)
7、這樣一套管理軟件成為很有必要的事情,在下面的各章中將以開發(fā)一套學生學籍管理系統(tǒng)為例,談談其開發(fā)過程和所涉及到的問題及解決方法。2系統(tǒng)(xtng)概述21 開發(fā)(kif)背景211 當前(dngqin)趨勢該學籍管理系統(tǒng)采用多層架構的系統(tǒng),是真正適應教育信息化發(fā)展三大趨勢的校園網絡應用系統(tǒng),全面支持Internet功能、遠程訪問功能,全部采用最先進的B/S(瀏覽器/服務器) 模式來開發(fā),基本目標是在學校內部和外部建立起順暢的信息通道,提高學校的管理水平和效率(xio l),以便克服了目前大部分學校的校園網建設只起到宣傳作用的通病。212 用計算機管理學生學籍的意義 現在我國的中小學校中學籍的管理
8、水平還停留在紙介質的基礎上,這樣的機制已經不能適應時代的發(fā)展,因為它浪費了許多人力和物力,在信息時代這種傳統(tǒng)的管理方法必然被計算機為基礎的信息管理所取代。作為一個計算機應用的本科生,希望可以在這方面有所貢獻。改革的總設計師鄧小平同志說過“科學技術是第一生產力”,我希望能用我多年的所學編制出一個實用的程序來幫助中小學進行更有效的學籍管理。歸納起來,好處大約有以下幾點:1.可以存儲歷屆的學生學籍,安全、高效;2.只需一到二名學籍錄入員即可操作系統(tǒng),節(jié)省大量人力;3.可以迅速查到所需信息。 22 學籍管理系統(tǒng)概述221 開展該系統(tǒng)的原因由于現今的學籍管理非常繁瑣,行政人員付出大量的工作時間,得到的效
9、率很低。因此為提高工作效率,減輕校方人員的工作負擔,決定開發(fā)學籍管理系統(tǒng)軟件。 222 該工程的基本目標開發(fā)此學籍管理系統(tǒng)軟件,以供教學人員及操作者進行學籍管理,方便操作者隨時添加、查詢、修改等。為了我們提高軟件開發(fā)的能力,學習漢語編程的技巧,提高工作設計思想,通過本次的工程開發(fā),開發(fā)小組成員與輔助老師,公司的技師交流,能從中學習知識吸取經驗,再技術和軟件思想上同時得到鍛煉和提高,從而使總體水升到一個新的高度。23 開發(fā)環(huán)境以及開發(fā)工具介紹該軟件是在Windows xp + Visual Basic 6.0 + SQL Server 2000的環(huán)境下完成的。下面就對這些(zhxi)開發(fā)工具進行
10、介紹:3 設計(shj)整體規(guī)劃31數據庫的設計(shj)在系統(tǒng)設計過程中,首先要建立的就是數據庫。本數據庫采用SQL Server 2000來構造,共使用了7個表,它們分別是用戶信息表(UserInfo)、學生信息表(StuInfo)、班級信息表(Class)、專業(yè)信息表(Major)、學院信息表(Depart)、課程信息表(Lesson)、學生成績表(Result)。用戶信息表(UserInfo):字段名數據類型說明是否為空是否為關鍵字UserID文本用戶名Not NullPrimary KeyUserPWD文本用戶密碼Not NullUserName文本姓名Not NullUserPow
11、er文本使用權限Not Null學生信息表(StuInfo):字段名數據類型說明是否為空是否為關鍵字SID文本學號Not NullPrimary KeySName文本姓名Not NullSGender文本性別Not NullSPlace文本籍貫Not NullSBirthday日期/時間出生日期Not NullSMinzu文本民族Not NullSZhengzhi文本政治面貌Not NullSDormitory文本寢室號碼Not NullSAddress文本家庭住址Not NullSCode文本郵政編碼Not NullSTel文本聯系電話Not NullSRemark備注備注Not Null班
12、級信息表(Class):字段名數據類型說明是否為空是否為關鍵字ID文本班級代碼Not NullPrimary Key專業(yè)(zhuny)信息表(Major):字段名數據類型說明是否為空是否為關鍵字ID文本專業(yè)代號Not NullPrimary KeyName文本專業(yè)名稱Not Null學院(xuyun)信息表(Depart):字段名數據類型說明是否為空是否為關鍵字ID文本學院代號Not NullPrimary KeyName文本學院名稱Not Null6課程(kchng)信息表(Lesson):字段名數據類型說明是否為空是否為關鍵字ID文本課程代號Not NullPrimary KeyName文
13、本課程名稱Not NullTime文本課時Not NullMark 文本學分Not Null7學生成績表(Result):字段名數據類型說明是否為空是否為關鍵字ID文本學生學號Not NullPrimary KeyName文本課程名稱Not NullPrimary KeyScore文本分數Not NullRemark文本備注Not Null32設計流程圖登陸表單(管理員或者普通用戶身份登陸)Splash表單MDI主窗口(系統(tǒng)主窗口)管理學生學籍信息(學生基本信息管理,課程管理,專業(yè)/學院管理和考試成績管理管理系統(tǒng)用戶(添加,刪除)對學生信息進行查找(按學號或姓名)返回查詢信息管理員登陸重新登陸
14、 圖2.1 系統(tǒng)(xtng)流程圖33 設計(shj)功能分析系統(tǒng)開發(fā)的目標是實現學生學籍(xuj)管理的系統(tǒng)化、規(guī)范化和自動化,這是在用戶要求的基礎上提出來的,功能要求如下: (一)學生信息管理:能對學生信息進行添加、修改、刪除。(二)課程管理:對課程進行添加、修改、刪除操作。(三)專業(yè)/學院設置:(三)考試成績管理:(四)查詢學生信息:根據學號或姓名對學生信息進行精確/模糊查詢(五)用戶管理:定義使用本系統(tǒng)的用戶名稱及密碼 4 設計具體實現經過需求分析、功能模塊設計之后要進入詳細設計階段,本階段將按系統(tǒng)的主要模塊進行論述,重在闡述具體的某項功能的實現方法或運用到的相關技術。41 準備工作添
15、加引用:單擊工程菜單中的引用選項,添加Microsoft ActiveX Data Objects 2.6 Library和Microsoft Excel 9.0 Object Library兩個引用。添加部件:單擊工程菜單中的部件選項,添加Microsoft ADO Data Control 6.0(OLEDB)、Microsoft Common Dialog Control 6.0(SP3) 、Microsoft FlexGrid Control 6.0、Microsoft Windows Common Controls 6.0(SP4)和Microsoft Windows Common
16、Controls-2 6.0五項。42 設計步驟421 登陸界面(frmlogin)因為(yn wi)本系統(tǒng)是按學籍管理的思想設計的,故而登陸部分主要完成密碼校驗、確定管理員等功能,對于密碼本系統(tǒng)采用的是MD5算法。這里附上本程序的登陸界面,見圖3.1。圖3.1 用戶(yngh)登陸界面在代碼(di m)窗口的“通用”部分,定義一個模塊級的公共變量loginno用來記錄當前密碼輸入錯誤的次數Dim loginno As Integer在Form的Load事件中,將txtuser設置為焦點,初始化loginno。Private Sub Form_Load() loginno = 0 Me.Sho
17、w txtuser.SetFocusEnd Sub這里將“確定”和“取消”兩個按鈕作為一個按鈕數組cmdOkCancel:確定按鈕的index屬性為0,取消按鈕的index屬性為1。利用SQL語句,在數據庫中查詢,如果查到相應的記錄,則調用Case 0事件,用戶的登陸獲得通過,此時可以退出登陸窗口,并進入MDI主窗口,同時將用戶類型和用戶名分別傳遞到MDI主窗口和frmmanage中;如果沒有相應的記錄,則給出提示錯誤信息,同時將用戶輸入錯誤密碼次數增加1,如果錯誤超過3次,則退出整個系統(tǒng);若次數還沒有超過3次,則提示用戶重新輸入。根據以上的設計,cmdOkCancel的Click事件的代碼如
18、下:Private Sub cmdOkCancel_Click(Index As Integer) Select Case Index Case 0 Userid = Trim(txtuser.Text) Userpwd = MD5(Trim(txtPassword.Text) sqlstr = select * from UserInfo where UserID= & Userid & rs.Open sqlstr, con, 1, 1 If Not rs.EOF Then If rs(UserPWD) Userpwd Then 密碼(m m)錯誤時 MsgBox 您輸入(shr)的密碼不
19、正確!, vbQuestion Me.Caption = 請輸入(shr)用戶名和密碼: loginno = loginno + 1 當錯誤的密碼次數達到3次時,不能登陸,退出! If loginno = 3 Then MsgBox 對不起,您不能使用該系統(tǒng)!請與管理員聯系。, vbInformation Unload Me Exit Sub End If Else LoginUser = Userid 保存當前登陸用戶名 LoginPower = rs.Fields(3) 將當前登陸用戶的權限保存到LoginPower中 Unload Me frmflash.Show End If Else
20、 MsgBox 沒有您輸入的用戶名!, 32 End If rs.Close: Set rs = Nothing Case 1 退出整個(zhngg)程序 Unload Me End SelectEnd Sub422 MDI主窗口(chungku)(frmmain)本系統(tǒng)采取多文檔界面(MultiDocument Interface)。多文檔界面是一種Windows用戶界面標準。它有一個父窗口(chungku),在典型情況下,父窗口用來顯示程序菜單以及包含子窗口。在工程中添加一個MDI窗口,取名為“frmmain.frm”,并為MDI窗體進行菜單和代碼的設計,其運行界面如圖3.2:圖3.2 主
21、界面4221 菜單設計MDI主窗體是整個系統(tǒng)的容器,為了方便用戶的使用,應設計相應的菜單和代碼。4222 窗體代碼設計1在代碼窗口的通用部分,聲明(shngmng)一個API函數用于打開幫助文件和調用Outlook發(fā)送郵件。Private Declare Function ShellExecute& Lib shell32.dll Alias ShellExecuteA (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpD
22、irectory As String, ByVal nShowCmd As Long)2判斷(pndun)用戶權限如果登陸的為普通用戶(yngh)類型的用戶,則用戶不能使用“用戶管理”這一功能,而對于管理員類型的用戶,則沒有此限制。所以在MDIForm的Load事件中需要判斷用戶類型。Private Sub MDIForm_Load() StatusBar.Panels(2).Text = 當前操作員: & LoginUser & & LoginPower & If LoginPower = 普通用戶 Then filemenu11.Enabled = False Toolbar1.Butto
23、ns.Item(5).Enabled = False End IfEnd Sub3Form的QueryUnload事件當用戶要退出MDI窗體時,需要在QueryUnload事件中詢問用戶是否真的要退出本系統(tǒng);如果用戶不要退出,則將Cancel置為1,取消整個退出過程。Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) If MsgBox(確定要退出學生檔案管理系統(tǒng)嗎?是/否,vbYesNo+vbQuestion+ vbDefaultButton1) = vbNo Then Cancel = 1 En
24、d IfEnd SubQueryUnload和Unload事件當一個子窗體或一個Form對象關閉時,在那個窗體中的QueryUnload事件先于該窗體的Unload事件發(fā)生,Unload事件在Terminate事件之前發(fā)生。當一個應用程序關閉時,可使用QueryUnload或Unload事件過程將Cancel屬性設置為True來阻止關閉過程。但是,QueryUnload事件是在任一個卸載之前在所有窗體中發(fā)生,而Unload是在每個窗體卸載時發(fā)生。在這兩個事件中,均可將Cancel設置為任何(rnh)非零的值來防止窗體被刪除。但Unload不能阻止其他事件,諸如從Microsoft Window
25、s操作環(huán)境中退出等;而QueryUnload事件則可以阻止從Windows中的退出。有介于此,通常來說都是在QueryUnload中詢問用戶是否要退出當前窗體。4“重新(chngxn)登陸”子菜單(ci dn)的代碼當單擊了“重新登陸”或者按下了“F2”鍵時,將會給出提示,如果用戶在提示框中按下了“確定”按鈕,則退出整個MDI主窗體,并顯示登陸窗體。Private Sub filemenu15_Click()If MsgBox(若重新登陸,所有窗體都將關閉!是否重新登陸?, vbYesNo + vbQuestion, 重新登陸) = vbYes Then Unload Me Frmlogin.
26、Show End IfEnd Sub5“幫助主題”子菜單的代碼調用Windows API函數,打開help.chm幫助文件。Private Sub filemenu21_Click() ShellExecute 0, open, App.Path & help.chm, , , 1End Sub6“給我發(fā)郵件”子菜單的代碼如果用戶單擊了“給我發(fā)郵件”子菜單,則會調用API函數,調用Outlook。Private Sub filemenu22_Click() ShellExecute Me.hwnd, open, mailto:datou158, , App.Path, 1End Sub7當用戶
27、單擊查詢學生資料菜單項或者按下F3鍵時,將會出現“查找學生”窗體,供用戶查找滿足特定要求的學生信息。Private Sub filemenu45_Click() 查找學生 frmstusearch.Show 1End Sub333 用戶管理窗體(frmmanage)向項目中添加窗體,并命名為frmmanage.frm。窗體的控件設計如圖3.3所示 圖3.3 用戶管理(gunl)界面如果登陸的用戶類型是管理(gunl)員,用戶管理一項是可用的,當單擊該子菜單時,將會出現用戶管理窗口,管理員可以對系統(tǒng)用戶進行添加和刪除操作。3331 窗體代碼(di m)設計1定義一個整型變量DelNO用來存儲當前
28、系統(tǒng)用戶的數目,當DelNO=1時提示用戶不能再刪除用戶。在該窗體的通用部分寫如下代碼: Dim DelNO As Integer2窗體加載時,初始化Listview用以顯示系統(tǒng)用戶列表,代碼如下Private Sub Form_Load()初始化ListViewDim clmX As ColumnHeaderSet clmX = ListView.ColumnHeaders.Add(, , 用戶名, ListView.Width / 3)Set clmX = ListView.ColumnHeaders.Add(, , 密碼, ListView.Width / 6, 2)Set clmX =
29、 ListView.ColumnHeaders.Add(, , 姓名, ListView.Width / 4, 2)Set clmX = ListView.ColumnHeaders.Add(, , 用戶權限, ListView.Width / 4, 2)Combo1.ClearCombo1.AddItem 普通用戶Combo1.AddItem 超級用戶Combo1.ListIndex = 0LoadOperatorEnd Sub其中(qzhng)調用了LoadOperator函數,該函數用來顯示和刷新Listview中的數據Private Sub LoadOperator() On Erro
30、r Resume NextDim Listit As ListItemListView.ListItems.ClearListView.LabelEdit = lvwAutoListView.View = 3Dim ef As New ADODB.Recordsetsqlstr = select * from UserInfoef.Open sqlstr, con, 1, 1DelNO = ef.RecordCount Do While Not ef.EOF Set Listit = ListView.ListItems.Add(, , ef.Fields(UserID) Listit.Sub
31、Items(1) = * 隱藏用戶的密碼(m m),用*來替代。 Listit.SubItems(2) = ef(UserName) Listit.SubItems(3) = ef(UserPower) ef.MoveNext LoopSet ef = NothingEnd Sub3添加(tin ji)用戶在Textbox中輸入了相應的數據以后,按添加按鈕則調用該按鈕的Click事件,代碼如下當單擊“添加”按鈕時,首先檢查輸入的用戶名和密碼是否為空,代碼如下:Private Sub Command4_Click() If Trim(Text1.Text) = Then MsgBox 登陸(dn
32、g l)用戶名不允許為空!, vbOKOnly + 48, 提示: Text1.SetFocus Exit SubEnd IfIf InStr(1, Trim(Text1.Text), , vbTextCompare) Then MsgBox 用戶(yngh)姓名中有特殊字符 + ,請刪除。, vbOKOnly + 48, 提示: Text1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = Then MsgBox 密碼(m m)不能為空,請輸入密碼!, vbOKOnly + 48, 提示: Text2.Text = Text3.Text = Text2
33、.SetFocus Exit SubEnd IfEnd Sub如果不為空,則檢查用戶名是否有重復,需要打開系統(tǒng)信息表,Private Sub Command4_Click() sqlstr = select * from UserInfo where UserID= & Text1.Text & rs.Open sqlstr, con, 1, 1 End Sub如果當前記錄不為空,則逐條記錄檢查是否有重復Private Sub Command4_Click()Userid = Trim(Text1.Text)Userpwd = MD5(Trim(Text2.Text)Username = Tr
34、im(Text4.Text)Userpower = Trim(Combo1.Text) DelNO = rs.RecordCount Do While Not rs.EOF rs.MoveNextLoop End Sub如果有重復,則提示已存在這個用戶,然后將焦點設置給Text1,并將所有(suyu)的文本框清空。Private Sub Command4_Click() Do While Not rs.EOF If Text1.Text = rs.Fields(UserID) Then MsgBox 已經存在用戶(yngh)名為 & Userid & 的用戶帳號, vbInformation
35、Text1.SetFocus Exit Sub End If rs.MoveNextLooprs.Close: Set rs = NothingEnd Sub如果沒有重復(chngf),再檢查兩次輸入的密碼是否一致,如果不一致,則提示“兩次密碼不一致”。Private Sub Command4_Click()If Trim(Text3.Text) Trim(Text2.Text) Then MsgBox 兩次密碼不相同,請重輸入!, vbOKOnly + 48, 提示: Text2.Text = Text3.Text = Text2.SetFocus Exit SubEnd IfEnd Sub
36、如果以上全部正確無誤的設置好了,則將新用戶的信息添加(tin ji)到數據表中,并提示“添加(tin ji)新用戶成功”。Private Sub Command4_Click()sqlstr = insert into UserInfo(UserID,UserPWD,UserName,UserPower) sqlstr = sqlstr & values( & Userid & , & Userpwd & , sqlstr = sqlstr & & Username & , &Userpower & )con.Execute sqlstr MsgBox 添加用戶 & Text1.Text &
37、成功(chnggng), vbOKOnly, 添加系統(tǒng)用戶 Text1.Text = Text2.Text = Text3.Text = Text4.Text = 更新列表 LoadOperatorEnd Sub4刪除系統(tǒng)用戶當用戶雙擊ListView中的數據時,則會調用DeleteRecord()函數,如果系統(tǒng)用戶只剩一個,則提示用戶不能再刪除;反之要求輸入您想要刪除的用戶的密碼,密碼正確時才可以將該用戶刪除,密碼錯誤時則不采取任何措施;最后調用LoadOperator顯示并刷新Listview中的數據。根據以上的設計,DeleteRecord()的代碼如下:Private Sub Dele
38、teRecord()刪除用戶操作On Error Resume NextIf ListView.SelectedItem.Selected Then If DelNO = 1 Then MsgBox 只剩下一個用戶帳號,不允許再刪除!, vbInformation ElseIf MsgBox(確定要刪除用戶名為& ListView.SelectedItem.Text & 的用戶帳號嗎?, vbYesNo + 32 + vbDefaultButton2) = vbYes Then sqlstr = select * from UserInfo where UserID= & ListView.S
39、electedItem.Text & rs.Open sqlstr, con, 1, 1 If MD5(InputBox(請輸入(shr)該用戶的密碼:) = rs.Fields(UserPWD) Then sqlstr = delete from UserInfo where UserID= & ListView.SelectedItem.Text & con.Execute sqlstr Else MsgBox 對不起!您輸入(shr)的密碼不正確,刪除該用戶失??!, vbInformation End If LoadOperator End IfEnd Ifrs.Close: Set r
40、s = NothingEnd Sub5菜單(ci dn)設計在Listview中單擊鼠標右鍵會調用ListView的MouseUp事件,出現右鍵菜單menuOpertor,具體實現如下:Private Sub ListView_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)If Button = 2 Then PopupMenu menuOperatorEnd IfEnd Sub實現該右鍵菜單各項功能的代碼如下:Private Sub menuAdd_Click() 添加(tin ji)用戶 Text
41、1.SetFocusEnd SubPrivate Sub menuDel_Click() 刪除(shnch)用戶 DeleteRecordEnd Sub334 修改(xigi)密碼窗體(frmchgPWD)當用戶要更改密碼時,單擊“系統(tǒng)選項/修改個人密碼”菜單,彈出如圖3.4所示窗體。在MDI主窗體編輯窗口中,單擊“系統(tǒng)選項/修改個人密碼”,添加如下代碼:Private Sub filemenu12_Click() 修改密碼界面 Frmchgpwd.Show 1End Sub圖3.4 修改用戶密碼當用戶輸入完畢時,單擊“確定”按鈕,引發(fā)Click事件。這時,先檢查兩次輸入的密碼是否一致,如果不
42、一致,則提示用戶,將焦點設置到第二個Text2控件,后面兩個文本框清空,代碼如下:Private Sub Command1_Click() Dim Oldpwd As String, pwd As String, confirmpwd As StringOldpwd = Trim(Text1.Text)pwd = Trim(Text2.Text)confirmpwd = Trim(Text3.Text)If Trim(pwd) Trim(confirmpwd) Then MsgBox 兩次輸入的密碼不相同!, vbInformation Text2.Text = Text3.Text = Te
43、xt2.SetFocus Exit SubEnd IfEnd Sub如果密碼一致,則判斷輸入的原密碼是否正確,如果正確則將新密碼寫入數據庫,這時需要一個字符串變量表達SQL語句,一個Recordset對象變量打開系統(tǒng)信息數據表。然后打開數據庫,并將新密碼寫入,提示用戶密碼修改(xigi)成功。Private Sub Command1_Click()sqlstr = select UserPWD from UserInfo where UserID= & LoginUser & rs.Open sqlstr, con, 1, 1If Not rs.EOF Then If rs(UserPWD)
44、Oldpwd Then MsgBox 你輸入(shr)的原密碼不對!, vbInformation Text1.Text = Text2.Text = Text3.Text = Text1.SetFocus Exit Sub Else sqlstr = update UserInfo set UserPWD= & pwd & where UserID= & LoginUser & con.Execute sqlstr MsgBox 您的密碼更新成功(chnggng),請牢記你的密碼!, vbInformation Unload Me End IfElse MsgBox 異常錯誤!, vbInf
45、ormationEnd Ifrs.Close: Set rs = NothingEnd Sub修改(xigi)完畢后,單擊“取消(qxio)”退出(tuch)此窗體。Private Sub Command2_Click() Unload MeEnd Sub335 瀏覽學生信息窗體(frmstu)在工程中添加一個窗體,命名為frmstu.frm,這里將使用frmstu窗體,來實現瀏覽學生信息的功能,該界面運行時如圖3.5所示圖3.5 瀏覽學生信息窗體在該窗體中,用戶可以查看/修改學生的信息,還可以添加/刪除學生信息,所以用一個Treeview和一個Listview分別顯示班級列表和該班級下面的學
46、生列表,用Image和PictureBox來調整控件的大小。具體設置如表3.1所示 對象屬性設置FormNameFrmstuCaption學生檔案管理BorderStyle2-SizableMDIChildTrueWindowState2-MaximizedTreeviewStyletvwTreelinesPlusMinusPictureTextListviewFullRowSelectTrueGridLinesTrueMultiSelectFalseToolTipText雙擊顯示詳細資料ImageNameimgSplitPictureboxNameSliptBar表3.1 FrmStu中部分
47、(b fen)控件的屬性當窗體啟動時,需要在Treeview中加載班級列表(li bio),并初始化Listview中的標題。Private Sub Form_Load() Call TreeviewLoad Dim clmX As ColumnHeader Set clmX = ListView.ColumnHeaders.Add(, , 學 號, ListView.Width / 7) End Sub在Form_Load事件(shjin)中調用了TreeviewLoad函數,由于篇幅省略該函數的代碼,具體實現見源程序。當窗體大小發(fā)生變化時,調用Form_Resize,調整Frmstu中控件
48、的大小。Private Sub Form_Resize()If WindowState 1 Then If Me.Height 3000 Then Me.Height = 3000 If Me.Width 3000 Then Me.Width = 3000 SizeControls imgSplit.LeftEnd IfListView.Width = Me.WidthListView.ListItems(0).Width = 5000End SubSub SizeControls(X As Single) On Error Resume Next 設置 Width 屬性 If X (Me.W
49、idth - 1500) Then X = Me.Width - 1500 TreeView.Width = X imgSplit.Left = X ListView.Left = X + 50 ListView.Width = Me.Width - (TreeView.Width + 100) TreeView.Height = Me.ScaleHeight - 50 ListView.Top = TreeView.Top ListView.Height = TreeView.Height imgSplit.Top = TreeView.Top imgSplit.Height = TreeV
50、iew.HeightEnd Sub單擊Treeview中的班級(bnj)號碼則調用TreeView_NodeClick事件(shjin)和ListviewLoad事件在Listview中顯示(xinsh)該班級下面學生的信息列表。Private Sub TreeView_NodeClick(ByVal Node As MSComctlLib.Node)正在導入數據,提示用戶等待 Me.MousePointer = 11If Node.Tag = classid Then 開始在ListView中顯示數據 classid = Left(Node.Text, 6) Call ListviewLoa
51、d(classid)ElseIf Node.Key = S Then Call SqlListview(SqlSearch)Else ListView.ListItems.ClearEnd IfEnd SubPublic Sub ListviewLoad(ByVal classid As String)Dim Listit As ListItemListView.ListItems.ClearListView.LabelEdit = lvwManualListView.View = 3Dim ef As New ADODB.Recordsetclassid = Left(classid, 6)
52、sqlstr = select * from StuInfo where SID like & classid & _ order by SIDef.Open sqlstr, con, 1, 1 Do While Not ef.EOF Set Listit = ListView.ListItems.Add(, , ef.Fields(SID) Listit.SubItems(1) = ef.Fields(SName) Listit.SubItems(2) = ef.Fields(SGender) Listit.SubItems(3) = ef.Fields(SMinzu) Listit.Sub
53、Items(4) = ef.Fields(SZhengzhi) Listit.SubItems(5) = ef.Fields(SDormitory) Listit.SubItems(6) = ef.Fields(SAddress) ef.MoveNext Loopef.Close: Set ef = NothingListView.SetFocusEnd Sub在顯示該班級下面所有學生信息(xnx)的同時,用戶可以對記錄進行管理:添加新記錄、編輯或者刪除當前記錄,為此在Listview中創(chuàng)建右鍵菜單,用來對記錄進行操作。在本系統(tǒng)中,在系統(tǒng)默認情況下,班級編號(bin ho)作為學號的前面六位。
54、為了體現這一關系,需要將班級編號賦給顯示學號的文本框。“添加(tin ji)”子菜單的Click事件的設計思路:用戶單擊“添加”子菜單時,調用frmmain中的“添加學生信息”子菜單顯示FrmAddStu窗體,同時將Command1的Caption屬性設置為“確定(&O)”。Private Sub pop3_Click() 添加學生資料 Call Frmstu.AddStuEnd SubPublic Sub AddStu()Call FrmAddStu.LoadStu(00000000)End Sub修改學生資料的Click事件的設計思路(sl)和添加學生資料的設計思路類似,但是由于只是對記錄
55、進行修改,不需要調用AddNew操作,只要對數據進行Update操作即可。Private Sub pop4_Click() 修改(xigi)學生資料 Call Frmstu.ModifyStuEnd SubPublic Sub ModifyStu()顯示(xinsh)窗口Dim EditNum As StringIf ListView.SelectedItem.Selected Then EditNum = CStr(ListView.SelectedItem.Text) Call FrmAddStu.LoadStu(EditNum)Else Exit SubEnd IfEnd Sub刪除學生
56、資料的設計思路:在刪除記錄之前彈出詢問框,確認用戶是否真的要刪除當前記錄,如果用戶選擇了“是”,則刪除該條記錄,否則就不執(zhí)行任何操作。在刪除記錄過程中,使用學生的學號作為關鍵字,調用Execute方法來刪除當前記錄。在刪除了當前記錄以后,需要重新移動當前記錄;由于改變了當前記錄集的內容,所以需要調用ListviewLoad子過程來刷新Listview中的內容。Private Sub pop5_Click() 刪除學生資料 Call Frmstu.DelStuEnd SubPublic Sub DelStu()If ListView.SelectedItem.Selected Then If M
57、sgBox(確定要刪除學號為 & ListView.SelectedItem.Text & 的全部資料嗎!, vbYesNo + 32 + vbDefaultButton2) = vbYes Then sqlstr = delete from StuInfo where SID= & ListView.SelectedItem.Text & con.Execute sqlstr Call ListviewLoad(classid) End IfEnd IfEnd Sub學生信息包括了學號、姓名、出生日期、性別、家庭住址、聯系電話等內容。在Listview中列出了各學籍信息的學號和姓名以供用戶進
58、行(jnxng)導航,但是在實際管理中,還需要顯示出某一條學生信息的詳細列表。為此,設計詳細信息框,來羅列用戶的各種詳細信息。當用戶單擊“顯示(xinsh)該生詳細資料”子菜單時,顯示(xinsh)frmstuinfo窗體(圖3.6),并以學生學號為關鍵字,將該學生的全部資料賦值給frmstuinfo中的對應文本框。圖3.6 學生詳細信息Private Sub pop1_Click() 顯示詳細資料 Call Frmstu.ListView_DblClickEnd SubPublic Sub ListView_DblClick()On Error Resume NextIf ListView.
59、SelectedItem.Selected Then SelectNum = ListView.SelectedItem.Text If SelectNum Then 顯示出該生全部信息表單 Call frmstuinfo.LoadStuInfo(SelectNum) Else Exit Sub End IfEnd IfEnd Sub在frmstuinfo的代碼窗口中添入以下(yxi)代碼用來顯示該學生的詳細資料。Public Sub LoadStuInfo(StuNum As String)sqlstr = select * from StuInfo where SID= & StuNum
60、& rs.Open sqlstr, con, 1, 1 StuInfo(0).Caption = rs.Fields(SID) StuInfo(1).Caption = rs.Fields(SName) StuInfo(2).Caption = rs.Fields(SGender) StuInfo(3).Caption = rs.Fields(SZhengzhi) StuInfo(4).Caption = rs.Fields(SPlace) StuInfo(5).Caption = rs.Fields(SMinzu) StuInfo(6).Caption = rs.Fields(SBirthd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社交媒體與電子商務的融合銷售增長的利器
- 租賃合同范本鋪面
- 科技前沿下的職業(yè)選擇與挑戰(zhàn)
- 2025至2030年中國清心茶數據監(jiān)測研究報告
- 土建合同范本
- 知識產權侵權行為的調查與取證方法研究
- 科技巨頭引領的移動支付創(chuàng)新案例研究
- 餐具代銷合同范本
- 多層次金融體系建設的咨詢合同
- 2024年淄博市博山區(qū)事業(yè)單位招聘綜合類崗位考試真題
- 2025版校園樂器銷售代理與服務協議3篇
- DB11-T 1004-2023 房屋建筑使用安全檢查評定技術規(guī)程
- 2024-2025年天津河西區(qū)七年級上學期期末道德與法治試題(含答案)
- 《藝術與傳播》課件
- 烹飪安全知識培訓課件
- 預制板粘貼碳纖維加固計算表格
- 2025年海南農墾自然資源開發(fā)集團有限公司筆試題
- 2025年湖北宜昌枝江金潤源集團招聘17人高頻重點提升(共500題)附帶答案詳解
- 2023CSCO兒童及青少年白血病診療指南
- 醫(yī)療垃圾轉運流程
- 礦棉板模板施工合同
評論
0/150
提交評論