學生信息管理系統(tǒng)論文44_第1頁
學生信息管理系統(tǒng)論文44_第2頁
學生信息管理系統(tǒng)論文44_第3頁
學生信息管理系統(tǒng)論文44_第4頁
學生信息管理系統(tǒng)論文44_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

畢 業(yè) 論 文題 目 學 生 信 息 管 理 系 統(tǒng) 院系名稱: 信 息 工 程 系 專業(yè)班級: 計 算 機 網(wǎng) 絡 技 術 學生姓名: 學 號: 指導教師: 20 年 月 日摘 要使用本系統(tǒng)進行學生信息的管理,其中包括有系統(tǒng)用戶的管理,院系管理,專業(yè)管理,學生信息管理,教學計劃管理,以及學生成績的管理。系統(tǒng)用戶管理是管理用戶信息的添加、修改、刪除和查詢功能;院系管理是管理院系信息的添加、修改、刪除和查詢功能;專業(yè)管理是管理專業(yè)信息的添加、修改、刪除和查詢功能;學生信息管理是管理學生信息的添加、修改、刪除和查詢功能;教學計劃管理是管理教學計劃的添加、修改、刪除和查詢功能;學生成績管理是管理學生成績信息的添加、修改、刪除和查詢功能。關鍵字 學生信息 管理 窗體目 錄1 引言11.1 項目開發(fā)計劃階段11.2 開發(fā)階段12 學生信息管理系統(tǒng)簡介33 系統(tǒng)功能分析54 系統(tǒng)數(shù)據(jù)庫設計64.1 定義數(shù)據(jù)字典64.2 定義數(shù)據(jù)庫結構65 系統(tǒng)應用程序設計95.1 新建工程95.2 窗體設計9結束語49致謝50參考文獻51附錄521 引言目前,隨著高等院校辦學規(guī)模的不斷擴大,學生人數(shù)的逐年增長,學校對學生的信息管理工作也變得越來越繁重。為此,很大大中專院校都開發(fā)或購買了學生信息管理系統(tǒng),用于對學校學生的基本信息、課程設置信息、成績信息等進行計算機管理。從而方便快捷的對學生信息進行管理,保證了學校管理的正常并有效的進行著,不會因學生信息繁多,不好管理而影響學校的學生擴招計劃。從而使學??焖俪掷m(xù)穩(wěn)定的發(fā)展著。本系統(tǒng)分為六個功能模塊即系統(tǒng)用戶管理模塊、院系管理模塊、專業(yè)管理模塊、學生信息管理模塊、教學計劃管理模塊和學生成績管理模塊。每個模塊實現(xiàn)不同的功能:系統(tǒng)用戶管理模塊是對用戶信息的添加、修改、刪除和查詢功能的實現(xiàn);院系管理模塊是對院系信息的添加、修改、刪除和查詢功能的實現(xiàn);專業(yè)管理模塊是對專業(yè)信息的添加、修改、刪除和查詢功能的實現(xiàn);學生信息管理模塊是對學生信息的添加、修改、刪除和查詢功能的實現(xiàn);教學計劃管理模塊是對教學計劃的添加、修改、刪除和查詢功能的實現(xiàn);學生成績管理模塊是對學生成績信息的添加、修改、刪除和查詢功能的實現(xiàn)。1.1 項目開發(fā)計劃階段這個時期的主要任務是分析用戶需求,分析軟件系統(tǒng)所追求的目標,分析開發(fā)該系統(tǒng)的可行性。經(jīng)過了解大致可以分為以下兩個階段。(1) 問題定義階段 收集、分析、理解、確定用戶的要求,在與用戶進行全面討論的基礎上共同擬定“軟件系統(tǒng)目標與范圍說明書”。(2) 可行性研究階段 確立對問題定義階段確實的問題是否有可行的解決方案,并對各種可能方案做出成本和效益分析,系統(tǒng)分析員據(jù)此提出“可行性論證報告”,作為確定是否繼續(xù)進行這項工程的依據(jù)。1.2 開發(fā)階段 這個時期包括設計和實現(xiàn)兩個任務。其中設計任務又分為需求分析和系統(tǒng)設計兩個階段,實現(xiàn)任務包括編程和測試兩個階段。(1) 需求分析階段確定用戶對軟件系統(tǒng)的全部需求,并以“需求說明書”的形式表達,其目的是明確該軟件項目是用來“做什么”的。需求分析是整個開發(fā)任務的開始,也是最重困難、最耗時的一步。作為基礎的需求分析是否做得充分與準確,直接決定了構建數(shù)據(jù)庫與應用系統(tǒng)的速度和質量。需求分析做得不好,有時甚至會導致整個系統(tǒng)作廢。(2)系統(tǒng)設計階段設計軟件系統(tǒng)的模塊層次結構,設計模塊的控制流程,其目的是明確軟件系統(tǒng)“如何做”。本階段又可以分為概要設計和詳細設計兩個步驟,前者完成軟件系統(tǒng)模塊的劃分和模塊的層次結構以及數(shù)據(jù)庫結構設計;后者完成每個模塊的控制流程設計。本階段要完成“設計說明書”的編寫。(3)編程階段本階段將按照選定的程序設計語言將“設計說明書”中每個模塊的控制流程編寫出相應的程序,得到軟件系統(tǒng)的源程序。(4)測試階段軟件測試是在軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼的最終審查,是保證軟件質量的關鍵步驟。2 學生信息管理系統(tǒng)簡介本章講述如何實現(xiàn)學生信息管理系統(tǒng)的開發(fā),該系統(tǒng)各主要功能模塊界面如圖下:3 系統(tǒng)功能分析在實際開發(fā)此系統(tǒng)時,系統(tǒng)功能分析需要設計人員與用戶進行全面、深入的交流,切實了解用戶對整個系統(tǒng)期望具有的功能,與用戶共同決定系統(tǒng)應具備的功能。學生信息管理系統(tǒng)主要具有以下功能: 系統(tǒng)用戶管理:管理用戶信息的添加、修改、刪除和查詢功能。 院系管理:管理院系信息的添加、修改、刪除和查詢功能。 專業(yè)管理:管理專業(yè)信息的添加、修改、刪除和查詢功能。 學生信息管理:管理學生信息的添加、修改、刪除和查詢功能。 教學計劃管理:管理教學計劃的添加、修改、刪除和查詢功能。 學生成績管理:管理學生成績的添加、修改、刪除和查詢功能。根據(jù)系統(tǒng)功能分析,可得到學生信息管理系統(tǒng)功能模塊結構圖如圖31:學生信息管理系統(tǒng)系統(tǒng)用戶管理 院系管理 專業(yè)管理學生信息管理教學計劃管理學生成績管理圖31 學生信息管理系統(tǒng)功能模塊結構圖4 系統(tǒng)數(shù)據(jù)庫設計數(shù)據(jù)庫在學生信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫設計的好壞將直接影響到系統(tǒng)的效率以及系統(tǒng)實現(xiàn)的效果。合理的數(shù)據(jù)庫結構設計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整性和一致性,同時,合理的數(shù)據(jù)庫結構也將有利于程序的實現(xiàn)。數(shù)據(jù)庫設計可包括兩個部分:定義數(shù)據(jù)字典、定義數(shù)據(jù)庫結構。4.1 定義數(shù)據(jù)字典在學生信息管理系統(tǒng)中有下面所示的數(shù)據(jù)字典:(1)系統(tǒng)用戶數(shù)據(jù)系統(tǒng)用戶數(shù)據(jù)包含的數(shù)據(jù)項有用戶名、密碼、用戶權限。(2)院系信息數(shù)據(jù)院系信息數(shù)據(jù)包含的數(shù)據(jù)項有學院代碼和學校名稱。(3)專業(yè)信息數(shù)據(jù)專業(yè)信息數(shù)據(jù)包含的數(shù)據(jù)項有學院代碼、專業(yè)代碼和專業(yè)名稱。(4)學生基本信息數(shù)據(jù)學生基本信息數(shù)據(jù)包含的數(shù)據(jù)項有學號、姓名、性別、生日、民族、政治面貌、籍貫和備注。(5)教學計劃信息數(shù)據(jù)教學計劃信息數(shù)據(jù)包含的數(shù)據(jù)項有學院代碼、專業(yè)代碼、課程代碼、課程名稱、學期、學時、學分和課程性質。(6)學生成績信息數(shù)據(jù)學生成績信息數(shù)據(jù)包含的數(shù)據(jù)項有學號、姓名、課程代碼、成績和備注。4.2 定義數(shù)據(jù)庫結構學生信息管理系統(tǒng)采用的后臺數(shù)據(jù)庫是Microsoft Office Access 2003 數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫名稱為“StudentMIS.mdb“,其中包含了6張數(shù)據(jù)表,各表的名車設計結果分別如表41表46所示。(1)系統(tǒng)用戶數(shù)據(jù)表(login)系統(tǒng)用戶數(shù)據(jù)表用來保存用戶的賬戶信息,表中各字段的屬性如表41所示。表41 “l(fā)ogin“數(shù)據(jù)表的各字段屬性字段名稱數(shù)據(jù)類型字段大小主鍵標題user文本10用戶名password文本10密碼admin是/否是否為超級用戶(2)院系信息數(shù)據(jù)表(institute)院系信息數(shù)據(jù)表用來保存學校院系的信息,數(shù)據(jù)表中各字段的屬性如表42所示。表42 “institute“數(shù)據(jù)表的各字段屬性字段名稱數(shù)據(jù)類型字段大小主鍵標題institude_id文本2Yes學院代碼Institude_name文本22學院名稱(3)專業(yè)信息數(shù)據(jù)表(major)專業(yè)信息數(shù)據(jù)表用來保存學校各院系所設專業(yè)的信息,數(shù)據(jù)表中各字段的屬性如表43所示。表43 “major“數(shù)據(jù)表的各字段屬性字段名稱數(shù)據(jù)類型字段大小主鍵標題Institude_id文本2Yes學院代碼major_id文本2Yes專業(yè)代碼major_name文本22專業(yè)名稱(4)學生信息數(shù)據(jù)表(students)學生信息數(shù)據(jù)表用來保存學校所有學生的基本信息,數(shù)據(jù)表中各字段的屬性如表44所示。表44 “students“數(shù)據(jù)表的各字段屬性字段名稱數(shù)據(jù)類型字段大小主鍵標題number文本12Yes學號name文本8姓名sex文本1性別birth日期/時間生日nationality文本10民族political_party文本4政治面貌family_place文本30籍貫Memo備注備注說明:學生信息數(shù)據(jù)表中的學號字段的字段名為number,其長度為12。即number字段的前四位表示年級,其次兩位表示學院代碼,再次兩位表示專業(yè)代碼,接下來兩位表示班級,最后兩位表示序號。(5)教學計劃信息數(shù)據(jù)表(lessons)教學計劃信息數(shù)據(jù)表用來保存各學院專業(yè)所開設的各類課程的信息,數(shù)據(jù)表中各字段的屬性如表45所示。表45 “l(fā)essons“數(shù)據(jù)表的各字段屬性字段名稱數(shù)據(jù)類型字段大小主鍵標題institude_id文本2Yes學院代碼major_id文本2Yes專業(yè)代碼lesson_id文本7Yes課程代碼lesson_name文本50課程名稱Term文本1學期hours數(shù)字整型(小數(shù)位數(shù)0)學時credit數(shù)字單精度型(小數(shù)位數(shù)1)學分lesson_type文本8課程性質(6)學生成績信息數(shù)據(jù)表(score)學生成績信息數(shù)據(jù)表用來保存學生各門課程的成績信息,數(shù)據(jù)表中各字段的屬性如表 46所示。表46 “score“數(shù)據(jù)表的各字段屬性字段名稱數(shù)據(jù)類型字段大小主鍵標題Number文本12Yes學號Name文本8姓名lesson_id文本7Yes課程代碼Score數(shù)字單精度型(小數(shù)位數(shù)1,默認值0)成績Memo備注備注5 系統(tǒng)應用程序設計5.1 新建工程在VB中新建一個標準EXE工程,并將工程保存為“學生信息管理系統(tǒng).vbp“。接下來就可以設計各窗體,編寫代碼實現(xiàn)系統(tǒng)功能。5.2 窗體設計在已建的“學生信息管理系統(tǒng).vbp“工程中新建窗體,并在相應的窗體上添加文本框、標簽、直線以及命令按鈕等常用的VB內部控件,并設置相關屬性值。具體實現(xiàn)代碼(部分)如下:1.用戶登錄窗體代碼:Option ExplicitDim try_times As Integer 嘗試登陸次數(shù)Private Sub Form_Load() 設置數(shù)據(jù)庫路徑 StudentDBfile = App.Path & StudentMIS.mdb 窗體中心定位 Call ScreenCenter(Me)End SubPrivate Sub cmdCancel_Click() 結束應用程序 If MsgBox(你選擇了退出登陸,是否退出?, _ vbYesNo + vbInformation, 用戶登陸) = vbYes Then End Else Exit Sub End IfEnd SubPrivate Sub cmdOK_Click()Dim sName As String, sPas As StringDim mrs As ADODB.Recordset, strSQL As String sName = Trim(txtUserName.Text): sPas = Trim(txtPassword.Text) 數(shù)據(jù)有效性檢查 If sName = Then MsgBox 請輸入用戶名!, vbCritical, 用戶登陸驗證 txtUserName.SetFocus Exit Sub End If If sPas = Then MsgBox 請輸入密碼!, vbCritical, 用戶登陸驗證 txtPassword.SetFocus Exit Sub End If 檢查用戶名是否正確 strSQL = select * from login where user= & sName & Set mrs = ExecuteSQL(strSQL) If mrs.EOF = True Then MsgBox 用戶名不存在!, vbCritical, 用戶登陸驗證 try_times = try_times + 1 If try_times = 3 Then MsgBox 您已經(jīng)三次嘗試進入本系統(tǒng),均不成功,系統(tǒng)將關閉!, _ vbCritical, 用戶登陸驗證 End Else txtUserName.SetFocus txtUserName.SelStart = 0 txtUserName.SelLength = Len(txtUserName.Text) Exit Sub End If End If strSQL = select * from login where user= & sName & & _ and password= & sPas & Set mrs = ExecuteSQL(strSQL) If mrs.EOF = True Then MsgBox 密碼錯誤!, vbCritical, 用戶登陸驗證 try_times = try_times + 1 If try_times = 3 Then MsgBox 您已經(jīng)三次嘗試進入本系統(tǒng),均不成功,系統(tǒng)將關閉!, _ vbCritical, 用戶登陸驗證 End Else txtPassword.SetFocus txtPassword.SelStart = 0 txtPassword.SelLength = Len(txtPassword.Text) Exit Sub End If End If MsgBox 登陸成功!, vbInformation, 用戶登陸驗證 保存當前登陸的權限 bolAuthority = mrs.Fields(admin) 加載MDI主窗體 StudentMIS.Show 卸載登陸窗體 Unload MeEnd Sub2.主窗體代碼:Option ExplicitPrivate Sub MDIForm_Load() 操作菜單,按鈕禁用 Call InitMenuAndToolbars(False) InitMenuAndToolbars為標準模塊中自定義的公用函數(shù)End Sub教學計劃信息菜單單擊事件Private Sub mMan_Lessons_Click() If unloadChildForm() Then frmLessons.Show 操作菜單,按鈕使能 Call InitMenuAndToolbars(True)End Sub專業(yè)信息菜單單擊事件Private Sub mMan_Major_Click() If unloadChildForm() Then frmMajor.Show 操作菜單,按鈕使能 Call InitMenuAndToolbars(True)End Sub成績信息菜單單擊事件Private Sub mMan_Score_Click() mOpe_CreTable.Enabled = False 建表菜單失效 If unloadChildForm() Then frmScore.Show 操作菜單,按鈕使能 Call InitMenuAndToolbars(True)End Sub學生信息菜單單擊事件Private Sub mMan_Students_Click() If unloadChildForm() Then frmStudent.Show 操作菜單,按鈕使能 Call InitMenuAndToolbars(True)End Sub還原菜單命令Private Sub mOpe_Cancel_Click() Call Me.ActiveForm.CancelDataEnd Sub清空菜單命令Private Sub mOpe_Clear_Click()Dim s$, k% s = 是否確定刪除當前的記錄表的全部數(shù)據(jù)? k = MsgBox(s, vbYesNo + vbQuestion, 操作提示) If k = vbYes Then Call Me.ActiveForm.ClearData End IfEnd Sub建表菜單命令Private Sub mOpe_CreTable_Click() Call Me.ActiveForm.CreateScoreTableEnd Sub刪除菜單命令Private Sub mOpe_Delete_Click() Call Me.ActiveForm.DeleteDataEnd Sub保存菜單命令Private Sub mOpe_Update_Click() Call Me.ActiveForm.SaveDataEnd Sub退出菜單命令Private Sub mSys_Exit_Click() EndEnd Sub用戶管理菜單命令Private Sub mSys_User_Click() If unloadChildForm() Then frmUserManage.ShowEnd Sub工具欄按鈕單擊事件Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case Delete Call mOpe_Delete_Click Case New Call mOpe_CreTable_Click Case Recall Call mOpe_Cancel_Click Case Clear Call mOpe_Clear_Click Case Save Call mOpe_Update_Click End SelectEnd Sub3.用戶管理窗體部分代碼:Option ExplicitDim rs As ADODB.Recordset 記錄集對象Dim strSQL As String 字符串變量,保存SQL語言Dim bEdit As Boolean 編輯狀態(tài)標志Dim bAdd As Boolean 添加狀態(tài)標志Private Sub Form_Load() Set rs = New ADODB.Recordset strSQL = select * from login Set rs = ExecuteSQL(strSQL) If rs.RecordCount = 0 Then Call DisButtons Else rs.MoveFirst Call FillText cmdUpdate.Enabled = False cmdCancel.Enabled = False End If 窗體中心定位 Call CenterPos(StudentMIS, Me)End SubPrivate Sub cmdEdit_Click()編輯記錄 bEdit = True cmdEdit.Enabled = False cmdAdd.Enabled = False cmdDelete.Enabled = False cmdUpdate.Enabled = True cmdCancel.Enabled = True cmdFirst.Enabled = False cmdPrevious.Enabled = False cmdNext.Enabled = False cmdLast.Enabled = False txtUser.SetFocusEnd SubPrivate Sub cmdAdd_Click()添加記錄 bAdd = True rs.AddNew Call ClearText cmdEdit.Enabled = False cmdAdd.Enabled = False cmdDelete.Enabled = False cmdUpdate.Enabled = True cmdCancel.Enabled = True cmdFirst.Enabled = False cmdPrevious.Enabled = False cmdNext.Enabled = False cmdLast.Enabled = False txtUser.SetFocusEnd SubPrivate Sub cmdDelete_Click()刪除當前記錄 If MsgBox(真的要刪除嗎?, vbYesNo + vbExclamation, 提示信息) = vbYes Then rs.Delete rs.MoveNext If rs.EOF And rs.RecordCount 0 Then rs.MoveFirst If rs.RecordCount = 0 Then Call DisButtons Call ClearText Else Call FillText End If rs.Requery End IfEnd SubPrivate Sub cmdUpdate_Click()更新 If Trim(txtUser.Text) = Then MsgBox 用戶名不能為空!, vbCritical, 提示 txtUser.SetFocus Exit Sub End If If Trim(txtPassword.Text) = Then MsgBox 密碼不能為空!, vbCritical, 提示 txtPassword.SetFocus Exit Sub End If If bEdit Then rs.Update If bAdd Then rs.Update rs.Requery rs.MoveLast End If Call FillText cmdEdit.Enabled = True cmdAdd.Enabled = True cmdDelete.Enabled = True cmdUpdate.Enabled = False cmdCancel.Enabled = False cmdFirst.Enabled = True cmdPrevious.Enabled = True cmdNext.Enabled = True cmdLast.Enabled = True bEdit = False bAdd = FalseEnd SubPrivate Sub cmdCancel_Click()取消更改 bEdit = False bAdd = False rs.CancelUpdate If rs.RecordCount = 0 Then cmdUpdate.Enabled = False cmdAdd.Enabled = True Call ClearText Exit Sub Else Call FillText cmdEdit.Enabled = True cmdAdd.Enabled = True cmdDelete.Enabled = True cmdUpdate.Enabled = False cmdCancel.Enabled = False cmdFirst.Enabled = True cmdPrevious.Enabled = True cmdNext.Enabled = True cmdLast.Enabled = True End IfEnd SubPrivate Sub cmdFirst_Click()第一條記錄 rs.MoveFirst If rs.RecordCount 0 Then Call FillTextEnd SubPrivate Sub cmdPrevious_Click()上一條記錄 rs.MovePrevious If rs.BOF Then rs.MoveFirst If rs.RecordCount 0 Then Call FillTextEnd SubPrivate Sub cmdNext_Click()下一條記錄 rs.MoveNext If rs.EOF Then rs.MoveLast If rs.RecordCount 0 Then Call FillTextEnd SubPrivate Sub cmdLast_Click()最后一條記錄 rs.MoveLast If rs.RecordCount 0 Then Call FillTextEnd SubPrivate Sub DisButtons()按鈕禁用 cmdEdit.Enabled = False cmdDelete.Enabled = False cmdUpdate.Enabled = False cmdCancel.Enabled = False cmdFirst.Enabled = False cmdPrevious.Enabled = False cmdNext.Enabled = False cmdLast.Enabled = FalseEnd SubPrivate Sub FillText()用當前記錄的字段內容填充文本框 txtUser.Text = TransNull(rs.Fields(0) txtPassword.Text = TransNull(rs.Fields(1) If TransNull(rs.Fields(2) Then chkAdmin.Value = 1 Else chkAdmin.Value = 0 End IfEnd SubPrivate Sub ClearText()清除文本框 txtUser.Text = txtPassword.Text = chkAdmin.Value = FalseEnd Sub4專業(yè)信息窗體代碼:Option ExplicitDim cn As New ADODB.Connection 連接對象Dim DataEdited As Boolean 數(shù)據(jù)已編輯標志Dim bFirstStart As Boolean 窗體首次啟動的標志DataGrid內部錯誤處理Private Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer) If DataError = 7007 Then MsgBox 所輸字符數(shù)超過允許輸入字符最大個數(shù),參見狀態(tài)欄提示!, _ vbCritical, 錯誤提示 Response = 0 不彈出系統(tǒng)錯誤提示框 End IfEnd Sub設置ADO數(shù)據(jù)控件的連接屬性和記錄源屬性Private Sub SetAdc() Adodc1.ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= _ & StudentDBfile & ;Persist Security Info=False Adodc1.RecordSource = select major_id as 專業(yè)代碼 & major_name as 專業(yè)名稱_ & form major order by major_id ascEnd SubPrivate Sub Adodc1_FieldChangeComplete(ByVal cFields As Long, Fields As Variant, _ ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, _ ByVal pRecordset As ADODB.Recordset)字段改變完成后觸發(fā)的事件 DataEdited = TrueEnd SubPrivate Sub Adodc1_RecordChangeComplete(ByVal adReason As ADODB.EventReasonEnum, _ ByVal cRecords As Long, ByVal pError As ADODB.Error, _ adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)記錄改變完成后觸發(fā)的事件 Select Case adReason Case adRsnDelete, adRsnUpdate, adRsnAddNew DataEdited = True End SelectEnd SubPrivate Sub Adodc1_RecordsetChangeComplete(ByVal adReason As ADODB.EventReasonEnum, _ ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, _ ByVal pRecordset As ADODB.Recordset)記錄集改變完成后觸發(fā)的事件 Select Case adReason Case adRsnAddNew, adRsnDelete, adRsnAddNew DataEdited = True End SelectEnd SubDataGrid控件當前單元行列位置改變事件Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)Dim dbrow As Long, s1$, s2$, s3$確定記錄指針On Error Resume NextWith Adodc1.Recordset If .RecordCount = 0 Then dbrow = .RecordCount Else dbrow = .AbsolutePosition End If s1 = 當前記錄位置: & dbrow s2 = 記錄總數(shù): & Adodc1.Recordset.RecordCount s3 = 提示: & Adodc1.Recordset.Fields(DataGrid1.Col).Name & 最多只允許輸入 & _ Adodc1.Recordset.Fields(DataGrid1.Col).DefinedSize & 位字符! StatBar.Panels(1).Text = s1 StatBar.Panels(2).Text = s2 StatBar.Panels(3).Text = s3End WithEnd SubPublic Sub DeleteData()刪除當前記錄 當前單元在最后一行,但沒有 AddNew 操作,被掛起情況下退出該過程 If DataGrid1.AddNewMode = dbgAddNewCurrent Or Adodc1.Recordset.RecordCount = 0 Then Exit Sub End If Adodc1.Recordset.Bookmark = DataGrid1.Bookmark Adodc1.Recordset.Delete 設置修改標志 DataEdited = True DataGrid1.RefreshEnd SubPublic Sub SaveData()保存全部修改On Error GoTo errhandler: If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset.MoveFirst Adodc1.Recordset.UpdateBatch cn.CommitTrans 提交事務 DataEdited = False DataGrid1.Refresh Adodc1.Refresh Set cn = Adodc1.Recordset.ActiveConnection 獲取當前記錄集的連接對象 cn.BeginTrans 開始一個新事務 Exit Suberrhandler: 顯示與數(shù)據(jù)庫操作規(guī)則有關的錯誤信息 Call ShowDbRuleErrInf(專業(yè)代碼)End SubPublic Sub CancelData()還原全部修改On Error GoTo errhandler: If Adodc1.Recordset.RecordCount 0 Then Adodc1.Recordset.MoveFirst Adodc1.Recordset.CancelBatch cn.RollbackTrans 回滾事務 DataEdited = False DataGrid1.Refresh Adodc1.Refresh Set cn = Adodc1.Recordset.ActiveConnection 獲取當前記錄集的連接對象 cn.BeginTrans 開始一個新事務 Exit Suberrhandler: 顯示與數(shù)據(jù)庫操作規(guī)則有關的錯誤信息 Call ShowDbRuleErrInf(專業(yè)代碼)End SubPublic Sub ClearData()刪空當前記錄集 Call DBRecordset_Delete(Adodc1.Recordset) DataGrid1.Refresh 設置修改標志 DataEdited = TrueEnd Sub窗體卸載前查詢事件Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)Dim s$, b% If DataEdited = True Then s$ = 數(shù)據(jù)已修改,是否保存? b = MsgBox(s$, vbYesNoCancel + vbQuestion, 操作提示) Select Case b Case vbYes 保存修改 Call SaveData Case vbNo 取消修改 Call CancelData Case vbCancel Cancel = True 不關閉窗體 Exit Sub End

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論