【文章內(nèi)容簡介】
DO 通過 ODBC 方式訪問數(shù)據(jù)庫可以使用用戶 DSN、系統(tǒng) DSN 和文件DSN,鑒于安全性的考慮,一般不使用系統(tǒng) DSN,本系統(tǒng)選用文件 DSN。在設計過程中設置本系統(tǒng)的文件 DSN為 DSN訪問數(shù)據(jù)庫的代碼如下: Public Function ExecuteSQL(ByVal SQL As String, rst As , Optional enableWrite As Boolean = True) Dim con As Set con = New FileDSN= Set rst = New If enableWrite Then Trim$(SQL), con, adOpenDynamic, adLockOptimistic Else Trim$(SQL), con, adOpenDynamic, adLockReadOnly End If End Function 7 3 系統(tǒng)分析與設計 系統(tǒng)功能分析 隨著學校的規(guī)模不 斷擴大,學生的數(shù)量急劇增加,有關學生的各種信息量也成倍增長。通過這樣的系統(tǒng)可以做到信息的規(guī)范管理、快速查詢、修改、增加、刪除等,從而減少管理方面的工作量。設計內(nèi)容為管理員、教師和學生用戶登錄該系統(tǒng)進行八個模塊操作: ( 1)學生基本情況更新:增加、修改、刪除、查詢(按學號) ( 2)班級信息維護:添加班級、刪除、編輯、查詢(按班級編號) ( 3)課程信息維護:添加課程、刪除、編輯 ( 4)成績管理:錄入成績(教師用戶)、查詢成績(管理員、學生用戶) ( 5)獎懲信息維護:獎學金申請(學生用戶)、獎學金評定(管理員用戶 )、懲處信息的維護(管理員) ( 6)學費信息:費用設置、欠費處理、繳費 ( 7)密碼更改 ( 8)管理員角色添加(管理員用戶) 系統(tǒng)結構圖 登 錄學 生 信 息 管 理 系 統(tǒng)基本維護教務信息獎懲信息學費信息管理員信息班級信息學生信息課程信息學生選課學生成績獎學金處分信息學費設置學生繳費欠費處理管理員管理密碼修改 圖 系統(tǒng)結構圖 8 系統(tǒng) E— R 圖 圖 系統(tǒng) ER 圖 數(shù)據(jù)庫設計 本系統(tǒng)通過 SQL server 2020 建立后臺數(shù)據(jù)庫,數(shù)據(jù)庫共由 11 個表組成,分別是:訪問權限信息表(訪問權限)、學生基本情況信息表(學生信息)、班級信息表(班級信息)、課程信息、教師信息、選課表、處分信息、獎學金、學費信息、繳費信息、助學貸款信息表(貸款名單),下文將對主要表格進行簡單介紹 。 ( 1) 訪問權限 表 31 訪問權限表設計 名稱 字段名稱 類型 長度 訪問賬號 賬號 varchar 14 密碼 密碼 varchar 14 權限等級 權限 varchar 8 ( 2) 學生信息 表 32 學生基本信息表設計 字段名稱 類型 長度 NULL 值 學號 varchar 14 NOT 姓名 varchar 8 NOT 班級編號 varchar 7 NOT 性別 varchar 2 NOT 9 年級 varchar 4 NOT 政治面貌 varchar 8 NULL 民族 varchar 4 NOT 籍貫 varchar 4 NOT 身份證號 varchar 18 NOT 學籍狀態(tài) varchar 4 NULL ( 3) 班級信息 表 33 班級信息表設計 字段名稱 類型 長度 NULL 值 班級編號 varchar 7 NOT 年級 varchar 4 NOT 班級名稱 varchar 30 NOT 班級簡稱 varchar 16 NULL 人數(shù) Int 5 NOT 班主任 varchar 8 NOT ( 4) 課程信息 表 34 課程信息表設計 字段名稱 類型 長度 NULL 值 課程代碼 varchar 5 NOT 課程名稱 varchar 50 NOT 課程性質(zhì) varchar 4 NOT 上課時間 varchar 20 NOT 上課地點 varchar 14 NULL 任課教師 varchar 8 NOT 學分 int 2 NOT ( 5) 選課表 表 35 選課表設計 字段名稱 類型 長度 NULL 值 學號 varchar 14 NOT 課程代碼 varchar 5 NOT 成績 float 20 NULL ( 6) 教師信息 10 表 36 教師表設計 字段名稱 類型 長 度 NULL 值 賬號 varchar 14 NOT 姓名 varchar 8 NOT 任課科目 varchar 50 NOT ( 7) 處分信息 表 38 處分信息表設計 字段名稱 類型 長度 NULL 值 學號 varchar 14 NOT 處分等級 varchar 12 NOT 說明 varchar 50 NOT 填報時間 date NOT ( 8) 獎學金 表 39 獎學金信息表設計 字段名稱 類型 長度 NULL 值 學號 varchar 14 NOT 平均成績 float 20 NOT 申請標記 varchar 4 NULL 11 4 系統(tǒng)具體實現(xiàn) 本部分主要內(nèi)容為本系統(tǒng)的各個運行界面以及主要界面的源代碼。 模塊設計 加一個模塊 module1,該部分主要包括一些公共變量的定義、 ExecuteSQL等執(zhí)行過程定義以及自動把備份的數(shù)據(jù)庫文件還原到 SQL Server 2020 中的代碼設計。 公共變量 Public 權限 As String Public 賬號 1 As String 用于存儲賬號和權限,在訪問過程中分配其訪問權限以及當前登陸者密碼的更改。 SQL 執(zhí)行語句 Public Function ExecuteSQL(ByVal SQL As String, rst As , Optional enableWrite As Boolean = True) Dim con As Set con = New FileDSN=39。打開文件 DSN Set rst = New If enableWrite Then Trim$(SQL), con, adOpenDynamic, adLockOptimistic’ 以讀寫方式打開數(shù)據(jù)文件 Else Trim$(SQL), con, adOpenDynamic, adLockReadOnly’ 以只讀方式打開數(shù)據(jù)文件 End If End Function 判斷數(shù)據(jù)庫中是否存在指定記錄 Public Function DBExist(ByVal SQL As String) As Boolean 39。判斷數(shù)據(jù)庫中 是否存在指定記錄 Dim rst As Dim con As Set con = New Set rst = New filedsn= 12 Trim$(SQL), con, adOpenStatic, adLockOptimistic If = True Then DBExist = False 39。沒有此記錄 Else DBExist = True 39。有此記錄 End If End Function DataGride 中顯示數(shù)據(jù) Public Function viewData(ByVal SQL As String, dg As DataGrid, Optional enableWrite As Boolean = True) As Integer 39。DataGride 中顯示數(shù)據(jù) Dim rst As Dim con As Set con = New Set rst = New filedsn= If enableWrite Then Trim$(SQL), con, adOpenStatic, adLockOptimistic Set = rst Else Trim$(SQL), con, adOpenStatic, adLockReadOnly Set = rst End If End Function 登錄窗體設計 添加一個窗體(登錄 .frm),該部分主要包括用戶的驗證以及權限的限制。 登錄功能的程序代碼: Option Explicit Dim SQL As String Dim rst As Private Sub Command1_Click() If = Or = Then 13 MsgBox 請你填寫完整! , vbOKOnly + vbExclamation, 提示 Else SQL = select 賬號 ,權限 from 訪問權限 where 賬號 =39。 + Trim() + 39。and 密碼 = 39。 + Trim() + 39。 Call DBExist(SQL) If DBExist(SQL) = True Then 賬號 1 = Trim() Call ExecuteSQL(SQL, rst, False) 權限 = (1) Else MsgBox 密碼錯誤 , vbOKOnly + vbExclamation, 警告 = End If End If If 權限 = 學生 Then 學生 .Show 登錄 .Hide End If If 權限 = 教師 Then 教師 .Show 登錄 .Hide End If If 權限 = 管理員 Then 登錄 .Hide End If End Sub Private Sub Command2_Click() = = End Sub Private Sub Command3_Click() End End Sub Private Sub form_load() 14 = = End