【正文】
窗體上浮動(dòng)的工具,同時(shí)也是其他 ActiveX 的容器。 選擇“工程”下拉菜單中的“部件”選項(xiàng),顯示“部件”對(duì)話框。 本系統(tǒng)就用了 Cool 工具中的 Statubar 控件,在系統(tǒng)這一界面中,添加了狀態(tài)欄,在第一個(gè)欄中,在樣式這一欄中選擇了文本,在第二個(gè)欄中,選擇了系統(tǒng)日期,第三個(gè)欄中選擇了系統(tǒng)時(shí)間,這樣,任何時(shí)候操作本系統(tǒng),都可以看到當(dāng)前的時(shí)間和日期。使用戶可以較快地確定需求,然后采用循環(huán)進(jìn)化的開(kāi)發(fā)方式,對(duì)系統(tǒng)模型作連續(xù)的精化,將系統(tǒng)需具備的性質(zhì)逐漸增加上去,直到所有的性質(zhì)全部滿足。 編程環(huán)境的選擇 微軟公司的 Visual Basic 是 Windows 應(yīng)用程序開(kāi)發(fā)工具,使目前最為廣泛的、易學(xué)易用的面向?qū)ο蟮拈_(kāi)發(fā)工具。故而,實(shí)現(xiàn)本系統(tǒng) VB 是一個(gè)相對(duì)較好的選擇。Access 的優(yōu)點(diǎn)在于它能使用數(shù)據(jù)表示圖或自定義窗體收集信息。另外, Access允許創(chuàng)建自定義報(bào)表用于打印或輸出數(shù)據(jù)庫(kù)中的信息。 Access 是一種關(guān)系數(shù)據(jù)庫(kù)工具,關(guān)系數(shù)據(jù)庫(kù)是已開(kāi)發(fā)的最通用的數(shù)據(jù)庫(kù)之一。 二者的結(jié)合 (DBA) 微軟的 JET 數(shù)據(jù)庫(kù)引擎提供了與數(shù)據(jù)庫(kù)打交道的途徑,我們是通過(guò)它以及 Visual Basic來(lái)訪問(wèn)數(shù)據(jù)庫(kù)并對(duì)其進(jìn)行各種操作。 ADODC 控件在數(shù)據(jù)庫(kù)中的信息與將信息顯示給用戶看的 Visual Basic 程序之間架起了一座橋梁。缺省情況下, ADODC 控件根據(jù)數(shù)據(jù)庫(kù)中的一個(gè)或多個(gè)數(shù)據(jù)庫(kù)表建立一個(gè) dynasettype(動(dòng)態(tài)集合)類型的記錄集合。將 ADODC 控件放置在窗體中之后,我們還必須在該控件與要處理的數(shù)據(jù)庫(kù)之間建立聯(lián)系。數(shù)據(jù)庫(kù)的作用在于組織和表達(dá)信息,簡(jiǎn)而言之,數(shù)據(jù)庫(kù)就是信息的集合。關(guān)系數(shù)據(jù)庫(kù)中包含了多個(gè)數(shù)據(jù)表的信息,數(shù)據(jù)庫(kù)含有各個(gè)不同部分的術(shù)語(yǔ),象記錄、域等。創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)的過(guò)程被認(rèn)為是數(shù)據(jù)模型設(shè)計(jì)。這三種操作均可由 Visual Basic 創(chuàng)建的程序來(lái)完成,下面的章節(jié)將詳細(xì)描述實(shí)現(xiàn)的具體方法。針對(duì)這樣的情況,采用讓數(shù)據(jù)的查詢變得簡(jiǎn)單化,數(shù)據(jù)變的更讓每個(gè)人都在任何時(shí)刻都可以了解到。該系統(tǒng)總體有四部分組成,包括學(xué)生信息查詢、教務(wù)信息維護(hù)、學(xué)生選課及用戶管理。通過(guò)本校內(nèi)部的信息,依據(jù)統(tǒng)一數(shù) 據(jù)信息進(jìn)行管理,把任何一塊信息所產(chǎn)生的數(shù)據(jù)變動(dòng)及時(shí)地反映給其它相關(guān)信息,做到數(shù)據(jù)共享。學(xué)生選課是對(duì)學(xué)生進(jìn)行相應(yīng)選擇自己相關(guān)的課程。 采用本系統(tǒng),能夠使整個(gè)系統(tǒng)內(nèi)部所有信息的工作簡(jiǎn)化,提高工作效益。 本系統(tǒng)中使用到的數(shù)據(jù)表主 要有班級(jí)表、成績(jī)表、繳費(fèi)表、課程表、學(xué)生檔案、用戶資料,由這六個(gè)表,組成了名為信息的數(shù)據(jù)庫(kù)(如圖一)。其中日期的數(shù)據(jù)類型為日期 /時(shí)間天型,其它的數(shù)據(jù)類型為文本型;成績(jī)表中字段為:學(xué)號(hào)、姓名、年級(jí)、專業(yè)、學(xué)期、考試時(shí)間、考試科目、考試地點(diǎn)、課程性質(zhì)、科目分?jǐn)?shù)、違紀(jì) 類型、備注;課程表中字段為:專業(yè)、年級(jí)、學(xué)期、課程名稱、教材、任課老師、課時(shí)、上課地點(diǎn)、課程性質(zhì)、考試性質(zhì);用戶資料中的字段包括:用戶名、密碼、身份。 在 VB 中,用 ADODC 鏈接數(shù)據(jù)庫(kù),用 DataGrid 或 DATA將庫(kù)中的數(shù)據(jù)在界面中顯示出來(lái),本系統(tǒng)采用 DataGrid。同時(shí),將桌面的 DataGrid控件選中,在屬性框中,將它的 Datasoure 設(shè)為 Adodc。然后再右擊,同樣,在彈出的快捷菜單中選擇“編輯”,我們就可以 所在的表格的寬度進(jìn)行調(diào)整。 下面為其代碼: Private Sub Command1_Click() Dim myCon As New Dim myRs As New Dim ZhuanYe, NianJi, XueQi, KeCheng, JiaoCai, RenKLS, KeShi, ShangKeDD, KeChengXZ, KaoShiXZ As String ZhuanYe = NianJi = XueQi = KeCheng = JiaoCai = RenKLS = KeShi = ShangKeDD = KeChengXZ = KaoShiXZ = If Trim(ZhuanYe) = Or Trim(NianJi) = Or Trim(XueQi) = Or Trim(KeCheng) = Or Trim(JiaoCai) = Or Trim(RenKLS) = Or Trim(KeShi) = Or Trim(ShangKeDD) = Or Trim(KeChengXZ) = Or Trim(KaoShiXZ) = Then MsgBox 請(qǐng)?zhí)顚?xiě)要修改課程資料的內(nèi)容! = = Exit Sub End If dsn=信息 select * from 課程表 where 專業(yè) =39。 amp。, myCon, 3, 2 myRs!年級(jí) = myRs!學(xué)期 = myRs!課程名稱 = myRs!教材 = myRs!任課老師 = myRs!課時(shí) = myRs!上課地點(diǎn) = myRs!課程性質(zhì) = myRs!考試性質(zhì) = MsgBox 您確定要修改嗎? , vbYesNo, 提示 = = 39。 = select * from 課程表 where 專業(yè) = 39。 Trim() amp。 39。 = (年級(jí) ) 39。 = (課程名稱 ) 39。 = (任課老師 ) 39。 = (上課地點(diǎn) ) 39。 = (考試性質(zhì) ) End Sub Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date) End Sub Private Sub Form_Activate() = strTiaoJian Set = End Sub Private Sub Form_Load() (必修 ) (選修 ) (自開(kāi) ) (考試 ) (查考 ) = = 39。 代碼如下: Dim sqlstr As String Private Sub Combo1_Change() End Sub Private Sub Combo2_Change() End Sub Private Sub Combo4_Change() End Sub Private Sub Combo5_Change() End Sub Private Sub Combo7_Change() End Sub Private Sub Command1_Click() Dim a As String Dim KCCX1 As String Dim KCCX2 As String Dim str1 As String Dim str2 As String If = True Then a = Trim(Combo2) Select Case a Case = KCCX1 = amp。 amp。 39。 Trim(Text1) amp。 Case like KCCX1 = Instr(1, amp。 ,39。 Trim() amp。)0 End Select a = Trim(Combo4) Select Case a Case = KCCX2 = amp。 amp。 39。 Trim(Text2) amp。 Case like KCCX2 = Instr(1, amp。 ,39。 Trim() amp。)0 End Select If = True Then If KCCX1 = Then strTiaoJian = select * from 課程表 where amp。 KCCX1 Else strTiaoJian = select * from 課程表 where amp。 and amp。 KCCX2 ElseIf KCCX2 = Then strTiaoJian = select * from 課程表 where amp。 KCCX1 amp。 KCCX2 End If Else If KCCX1 = Then strTiaoJian = select * from 課程表 where amp。 KCCX1 Else MsgBox 請(qǐng)選擇連接方式! , vbOKOnly, 警告 Exit Sub End If End If If (KCCX1 amp。 amp。 amp。 amp。 amp。 Trim() amp。 Format(str1, yyyymmdd) amp。 Trim() amp。 Format(str2, yyyymmdd) amp。 and amp。 = amp。 and amp。 = amp。 End If If sqlstr = Then MsgBox 請(qǐng)先輸入查找時(shí)間! Exit Sub End If strTiaoJian = select 專業(yè) ,年級(jí) ,學(xué)期 ,課程名稱 ,教材 ,任課老師 ,課時(shí) ,上課地點(diǎn) ,課程性質(zhì) ,考試性質(zhì) from 課程表 where amp。 (課時(shí) ) (課程性質(zhì) ) (考試性質(zhì) ) (=) (專業(yè) ) (年級(jí) ) (課程名稱 ) (教材 ) (任課老師 ) 39。打印統(tǒng)計(jì)包括班級(jí)統(tǒng)計(jì)分析、檔案統(tǒng)計(jì)分析、課程統(tǒng)計(jì)分析、成績(jī)統(tǒng)計(jì)分析和交費(fèi)統(tǒng)計(jì)分析 五類。 + Text1 + 39。 + Text2 + 39。 + Text3 + 39。 + Text4 + 39。 + Text1 + 39。 + Text2 + 39。 + Text3 + 39。 amp。 (男 ) 39。 + Text1 + 39。 + Combo1 + 39。If = 1 And Not IsNumeric(Text2) Then 39。 + Text2 + 39。End If If = 1 And Not IsNull(Text3) Then SQLadd = SQLadd + and 課程名稱 =39。 End If strSql = SQLoriginal + SQLadd + SQLorde If = 1 Then End If strSql vbModal = = 39。 = = = (必修 ) (選修 ) (自開(kāi) ) End Sub Private Sub Text3_Change() End Sub 成績(jī)統(tǒng)計(jì)分析(如:界面如圖七) (圖七) 代碼如下: Private Sub Command1_Click() Dim SQLoriginal As String Dim SQLadd As String Dim SQLorder As String Dim strSql As String On Error Resume Next SQLoriginal = SELECT * FROM 成績(jī)表 SQLadd = WHERE 學(xué)號(hào) =學(xué)號(hào) AND 姓名 =姓名 SQLorder = If = 1 And IsNumeric(Text1) Then SQLadd = SQLadd + and 學(xué)號(hào) =39。 End If If = 1 And Not IsNull(Text2) Then SQLadd = SQLadd + and 姓名 =39。 End If If = 1 And Not IsNull(Tex