【正文】
環(huán)境提供的 ADO 控件,數(shù)據(jù)庫訪問方法,對 ACCESS 中建立的關系數(shù)據(jù)庫簡單快捷的進行訪問。 在數(shù)據(jù)庫方面,我主要采用了 ADODC 的綁定方法。 ADO 是微軟公司最新推出的數(shù)據(jù)訪問技術,他特別設計用來訪問 OLE DB PRIVDER 一起協(xié)同工作,以提供通用數(shù)據(jù)訪問( UNIVERSAL DATA ACCESS), OLEDB 是底層的數(shù)據(jù)訪問接口 , ADO 控件使用數(shù)據(jù)對象來快速建立數(shù)據(jù)綁定的控件和數(shù)據(jù)提供者之間的連接。 ADO 的全名是 ActiveX Data Object(ActiveX 數(shù)據(jù)對象 ),是一組優(yōu)化的訪問數(shù)據(jù)庫的專用對象集,它為 ASP 提供了完整的站點數(shù)據(jù)庫解決方案,它作用在服務器端,提供含有數(shù)據(jù)庫信息的主頁內(nèi)容,通過執(zhí)行 SQL 命令,讓用戶在瀏覽器畫面中輸入,更新和刪除站點數(shù)據(jù)庫的信息。 ADO 主要包括 Connection,Recordset 和 Command 三個對象 , 它們的主要功能如下: Connection 對象:負責打開或連接數(shù) 據(jù)庫文件; Recordset 對象:存取數(shù)據(jù)庫的內(nèi)容; Command 對象:對數(shù)據(jù)庫下達行動查詢指令,以及執(zhí)行 SQL Server 的存儲過程。 比較而言: ODBC – ( Open Database Connectivity) 是第一個使用 SQL 訪問不同關系數(shù)據(jù)庫的數(shù)據(jù)訪問技術。使用 ODBC 應用程序能夠通過單一的命令操縱不同的數(shù)據(jù)庫,而開發(fā)人員需要做的僅僅只是針對不同的應用加入相應的 ODBC 驅動。 DAO ( Data Access Objects) 不像 ODBC 那樣是面向 C/C++程 序員的,它 是微軟提供給 Visual Basic 開發(fā)人員的一種簡單的數(shù)據(jù)訪問方法,用于操縱Access 數(shù)據(jù)庫。 RDO – 在使用 DAO 訪問不同的關系型數(shù)據(jù)庫的時候, Jet 引擎不得不在DAO 和 ODBC 之間進行命令的轉化,導致了性能的下降,而 RDO( Remote Data Objects) 的出現(xiàn)就順理成章了。 OLE DB – 隨著越來越多的數(shù)據(jù)以非關系型格式存儲,需要一種新的架構來提供這種應用和數(shù)據(jù)源之間的無縫連接,基于 COM( Component Object Model)的 OLE DB 應運而 生了。 綜上所述 ADO – 基于 OLE DB 之上的 ADO 更簡單、更高級、更適合Visual Basic 程序員,同時消除了 OLE DB 的多種弊端,取而代之是微軟技術發(fā)展的趨勢。所以我采用 ADO 的方法來綁定數(shù)據(jù)庫,能夠達到功能的要求。 、總體結構以及各部分功能 基本框架 這是一個學校管理系統(tǒng),其下有三大模塊:信息管理系統(tǒng),學籍管理系統(tǒng),以及圖書館管理系統(tǒng)。 a. 學生信息: 基本信息:學號、班級、宿舍等 檔案:姓名、住址、電話等 體檢信息:入學體檢、畢業(yè)體檢 獎懲信息 b. 員工信息:基本信息:姓名、教授課程、部門等 檔案:姓名、住址、電話等 : a. 學生成績管理:成績錄入、查詢、不及格名單、學生總分名次、綜合測評表、畢業(yè)設計、實習管理、班級查詢、設置年級課程等 b. 員工培訓管理: 我主要負責學生信息系統(tǒng)即學籍管理, 使用 VB 和數(shù)據(jù)庫的連接實現(xiàn)對系統(tǒng)的管理,在 VB 界面下實現(xiàn)各種功能。即窗體 MDIForm班級查詢、班級查詢 結果、班級瀏覽、畢業(yè)設計、補考成績查詢 結果、成績查詢結果、成績輸入、創(chuàng)建用戶、各班課程設置、關于、積考成績查詢結果、界面、實習管理、學生成績查詢、學生成績輸入、學生成績輸入數(shù)據(jù)顯示、學?;菊n程、用戶登陸、員工培訓信息、重修成績查詢結果、綜合測評、綜合測評信息都由我完成。 系統(tǒng)的總體結構 如圖所示: 界面接口 登陸接口 MDI 主接口 創(chuàng)建用戶 學生信息管理 員工信息管理 班級信息管理 基本信息 體檢信息 基本信息 培訓信息 班級查詢 班級瀏覽 課程信息管理 學?;菊n程 成績信息管理 學生成績信息 綜合測評 綜合測評信息 畢業(yè)管理 畢業(yè)設計 實習管理 圖 系統(tǒng)的總體結構 此系統(tǒng)主要由四個部分組成,分別是用戶添加及登陸部分, 學生信息管理部分,員工信息管理部分,班級信息管理部分,課程信息管理部分,成績信息管理部分,綜合測評部分,畢業(yè)管理部分以及圖書館部分。 系統(tǒng)各部分功能 學生信息管理部分分為基本信息、體檢信息兩部分。 員工信息管理部分分為基本信息和培訓信息兩部分。員工培訓信息部分可以瀏覽所有員工培訓的資料,添加新的培訓資料,修改需要改的信息。 班級信息管理部分分為班級查詢和班級瀏覽兩部分。班級查詢部分可以依各條件查詢所有班級信息。班級瀏覽部分支持資料的修改和刪除以及班級資料的報表打印。 課程管理部分分為學?;菊n程,各班 課程設置兩部分。學校基本課程設置部分提供所有課程的設置,可以查詢、添加、刪除、篩選。各班課程設置部分則根據(jù)各個班級情況從已經(jīng)設置好的基本課程中選擇所需要的課程,或者刪除不需要的課程,同樣支持報表打印。 成績信息管理部分分為學生成績信息、補考、重修、積考成績輸入和學生成績查詢?nèi)糠帧W生成績信息部分可以瀏覽所有成績信息,并能輸入 /修改,支持報表打印。補考、重修、積考成績輸入部分可以添加 /修改補考、重修、積考成績。學生成績查詢部分可以查詢所有成績、補考成績、重修成績和積考成績。 綜合測評部分分為綜合測評信息和綜 合測評圖示兩部分。綜合測評信息部分顯示所有綜合測評資料,并能實現(xiàn)多項查詢,支持打印。綜合測評圖示部分能依 每個人的成績顯示不同的二維圖。 畢業(yè)管理部分分為畢業(yè)設計、實習管理兩部分。畢業(yè)設計部分能瀏覽所有學生的畢業(yè)設計資料,并能進行資料的添加 /修改。實習管理部分能瀏覽所有學生的實習資料,并能進行資料的添加 /修改。 圖書館管理部分。 4. 系統(tǒng)部分窗體界面、代碼及簡要解釋 界面窗體(界面 .frm) 圖 界面窗體 這是一個運行的主界面,在控件中增加了 ProgressBar,再利用 Time 控件來控制其的變化。 Private Sub Timer1_Timer() If = Then 39。當 ProgressBar 的達到 100( max設定值)時觸發(fā) Unload Me 用戶登陸 .Show = False 39。停止時鐘 End If = + 39。ProgressBar 的值每次加 39。timer 屬性中設定每 秒 觸發(fā)一次,因此展示窗體顯示時間移動為 2 秒 End Sub 用戶登陸窗體(用戶登陸 .frm) 圖 用戶登陸窗體 這是個用戶登陸的窗體,用 DataCombo 來設置了連接數(shù)據(jù)庫的所有組名稱,用于方便選擇。 DataSource 來源于 DataEnvironment1,DataMember 來源于組表,DataField 來源于組名, RowSource 來源于 DataEnvironment1,RowMember 來源于組表, ListFiele 來源于組名。 Option Explicit Dim rstS As Private Sub Command2_Click() If = Then MsgBox 用戶名不能為空! , vbExclamation + vbOKOnly, 警告 Exit Sub End If 39。防止空用戶名 If = Then MsgBox 密碼不能為空! , vbExclamation + vbOKOnly, 警告 Exit Sub End If 39。防止空密碼 Do If = rstS(0) And = rstS(2) And = rstS(3) Then If rstS(0) = 管理員 Then admin = 1 Else admin = 0 End If Unload Me Exit Do End If 39。當用戶名和密碼相符的時候,進入主窗體,跳出循環(huán) If = True Then MsgBox 密碼錯誤,請重新輸入! , vbExclamation + vbOKOnly, 警告 = Exit Do End If 39。用戶名或者密碼不相符或者不存在,都出現(xiàn)提示密碼錯誤的對話框,跳出循環(huán) Loop 39。循環(huán)搜索每條記錄,直到出現(xiàn)以上兩種結果的一種 End Sub Private Sub Form_Load() Set rstS = 用戶表 End Sub 班級瀏覽窗體(班級瀏覽 .frm) 圖 班級瀏覽窗體 這是一個班級瀏覽窗體,用 DataGrid 調用了整張班級表,用追加實現(xiàn)對表中列的布局,用 Adodc 控制了記錄的變化,同時用 DataCombo 調用數(shù)據(jù)庫的年級表來實現(xiàn)對年級的篩選,此外還運用了數(shù)據(jù)報表。 班級表 .Filter = 年級 like 39。 amp。 amp。 %39。 39。按年級過濾 班級表 .Filter = cancel like 39。039。 39。取消過濾,實際是根據(jù) cancel 項進行過濾,此項是數(shù)據(jù)型,默認為 0 學生成績查詢窗體(學生成績 .frm) 圖 學生成績查詢窗體 這是學生成績查詢窗體,在控件中增加了 SSTab 來定義同類風格,是四個查詢、四張表都能集中在一個窗體中,簡單清晰。 Private Sub Form_Load() Set rstS = 成績表 Set a = 補考表 Set b = 重修表 Set c = 積考表 End Sub 學生成績輸入數(shù)據(jù)顯示窗體(學生成績輸入數(shù)據(jù)顯示 .frm) 學生成績輸入數(shù)據(jù)顯示窗體 這是學生成績輸入數(shù)據(jù)顯示窗體,整頁設置風格大方,操作簡便,一目了然,利用 DataGrid 調用數(shù)據(jù)庫中的成績表,同時也利用了追加實現(xiàn)了對表中列的布局。數(shù)據(jù)報表可以綜觀所有相關報表信息,輸入按扭可以實現(xiàn)對學生成績的錄入。 Private Sub Command4_Click() = 刪除 If MsgBox(真的要刪除當前記錄嗎 ?, vbOKCancel + vbCritical, 刪除 ) = vbOK Then If = True Then End If End If End Sub Private Sub Command5_Click() adAffectAllChapters 39。刷新記錄 End Sub 學?;菊n程 圖 學?;菊n程 這是學?;菊n程窗體,整頁綜合了多項控件,但并不顯得雜反而很有條理。三個 Lable 設置了排序、查找、篩選三個功能模塊,而在排序和查找模塊中又分別用了三個 Option 來做出選擇,用 Adodc 連接了后臺數(shù)據(jù)庫用 DataGrid 實現(xiàn)前臺數(shù)據(jù)的展現(xiàn), DataCombo 的選擇來實現(xiàn)篩選 。 Private Sub Command8_Click() If = True Then = 課程代號 End If If = True Then = 課程名 desc ElseIf = True Then = 學分 desc,課程代號 End If End Sub Private Sub Command9_Click() If = True Then (教學要求 like 39。 amp。 amp。 %39。) End If If = True Then (學分 like 39。 amp。 amp。 %39。) ElseIf = True Then (學期 like 39。 amp。 amp。 %39。) End If If Then MsgBox 未找到 ! End If End Sub 畢業(yè)設計窗體(畢業(yè)設計 .frm) 圖 畢業(yè)設計窗體 這是畢業(yè)設計窗體,這頁的特點在于利用了特效。用 Adodc 連接了后臺數(shù)據(jù)庫中的畢業(yè)設計表, 8 個 Command 可以實現(xiàn)諸多功能,特色在于三個 Time 控件,會使左右兩邊的“畢業(yè)設計信息”字樣呈閃爍狀態(tài),此外還有當前時間的顯示。 Private Sub Timer1_Timer() Dim i As Integer For i = 1