系统需求分析
研究生个人信息治理
导师信息治理
专业信息治理
功能模块设计
针对上述需求,设计的功能模块如图10.34所示。
(图片较大,请拉动滚动条观看)
数据表设计
1.研究生信息数据表
数据表名称:graduate_info。数据表结构如表10.4所示。
(图片较大,请拉动滚动条观看)
2.专业信息数据表
(图片较大,请拉动滚动条观看)
3.导师信息数据表
(图片较大,请拉动滚动条观看)
索引和视图设计
1.研究生信息数据表的索引和视图设计
2.专业信息表的索引和视图设计
3.导师信息数据表的索引和视图设计
创建数据库用户
(1)在如图10.35所示的创建用户的【一般信息】选项卡中进行如下设置。
(2)切换到如图10.36所示的创建用户的【角色】选项卡。
(图片较大,请拉动滚动条观看)
(3)成功创建上述用户的SQL代码如下。
―――――――――――――――――――――――――――――――――――――
CREATE USER "GRADUATEUSER" PROFILE "DEFAULT"
IDENTIFIED BY "12345678" DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK;
GRANT UNLIMITED TABLESPACE TO "GRADUATEUSER";
GRANT "CONNECT" TO "GRADUATEUSER";
GRANT "RESOURCE" TO "GRADUATEUSER";
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:第10章\creategraduateuser.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行creategraduateuser.sql文件创建用户。
创建数据表
1.创建研究生信息表
(1)在如图10.37所示的创建表的【一般信息】选项卡中进行如下操作。
(2)切换到如图10.38所示的创建表的【约束条件】选项卡。
(图片较大,请拉动滚动条观看)
(3)上述创建数据表graduateuser.graduate_info的SQL代码如下。
(图片较大,请拉动滚动条观看)
(3)上述创建数据表graduateuser.graduate_info的SQL代码如下。
(4)读者可以直接在【SQLPlus Worksheet】中执行createtablegraduateinfo.sql 文件创建数据表graduateuser.graduate_info。
2.创建专业信息表
(1)在如图10.39所示的创建表的【一般信息】选项卡中按照如图所示进行设置。
(2)切换到如图10.40所示的创建表的【约束条件】选项卡。
(图片较大,请拉动滚动条观看)
(3)上述创建数据表graduateuser.major_info的SQL代码如下。
(图片较大,请拉动滚动条观看)
【参见光盘文件】:第10章\createtablemajorinfo.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行createtablemajorinfo.sql文件创建数据表graduateuser.major_info。
3.创建导师信息表
(1)在如图10.41所示的创建表的【一般信息】选项卡中按照如图所示进行设置。
(2)切换到如图10.42所示的创建表的【约束条件】选项卡。
(图片较大,请拉动滚动条观看)
(3)上述创建数据表graduateuser.Director_info的SQL代码如下。
(图片较大,请拉动滚动条观看)
【参见光盘文件】:第10章\createtabledirectorinfo.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行createtabledirectorinfo.sql 文件创建数据表graduateuserdirector_info。
创建索引
1.为研究生信息表的NAME字段建立索引
(1)在如图10.43所示的创建索引的【一般信息】选项卡中按照图示进行操作。
(2)其他选项卡按照默认设置即可。
(3)上述创建索引的SQL代码如下。
―――――――――――――――――――――――――――――――――――――
CREATE INDEX "GRADUATEUSER"."研究生姓名字段索引"
ON "GRADUATEUSER"."GRADUATE_INFO"("NAME")
TABLESPACE "INDX"
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:第10章\createindexgraduate.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行createindexgraduate.sql 文件创建数据表graduateuser.graduate_info的索引“研究生姓名字段索引”。
2.为导师信息表的NAME字段建立索引
(1)在如图10.44所示的创建索引的【一般信息】选项卡中按照图示进行操作。
(2)其他选项卡按照默认设置即可。
(3)上述创建索引的SQL代码如下。
―――――――――――――――――――――――――――――――――――――
CREATE INDEX "GRADUATEUSER"."导师姓名字段索引"
ON "GRADUATEUSER"."DIRECTOR_INFO"("NAME")
TABLESPACE "INDX"
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:第10章\createindexdirector.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行createindexdirector.sql 文件创建数据表graduateuser.director_info的索引“导师姓名字段索引”。
创建视图
1.为研究生信息表建立视图
(1)在如图10.45所示的创建视图的【一般信息】选项卡中按照图示进行操作。
(2)其他选项卡按照默认设置即可。
(3)上述创建视图的SQL代码如下。
―――――――――――――――――――――――――――――――――――――
CREATE OR REPLACE VIEW "GRADUATEUSER"."VIEW_GRADUATE" AS
select *
from graduateuser.graduate_info WITH READ ONLY
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:第10章\createviewgraduate.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行createviewgraduate.sql文件创建数据表graduateuser.graduate_info的视图“VIEW_GRADUATE”。
2.为专业信息表建立视图
(1)在如图10.46所示的创建视图的【一般信息】选项卡中按照图示进行操作。
(2)其他选项卡按照默认设置即可。
(3)上述创建视图的SQL代码如下。
―――――――――――――――――――――――――――――――――――――
CREATE OR REPLACE VIEW "GRADUATEUSER"."VIEW_MAJOR" AS
select *
from graduateuser.major_info WITH READ ONLY
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:第10章\createviewmajor.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行createviewmajor.sql文件创建数据表graduateuser.major_info的视图“VIEW_MAJOR”。
2.为导师信息表建立视图
(1)在如图10.47所示的创建视图的【一般信息】选项卡中按照图示进行操作。
(2)其他选项卡按照默认设置即可。
(3)上述创建视图的SQL代码如下。
―――――――――――――――――――――――――――――――――――――
CREATE OR REPLACE VIEW "GRADUATEUSER"."VIEW_DIRECTOR" AS
select *
from graduateuser.director_info WITH READ ONLY
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:第10章\createviewdirector.sql。
(4)读者可以直接在【SQLPlus Worksheet】中执行createviewdirector.sql 文件创建数据表graduateuser.director_info的视图“VIEW_DIRECTOR”
VB工程总体框架
开发完成的研究生治理信息系统的总体框架如表10.7所示。
【参见光盘文件】:第10章\研究生治理信息系统.vbp。
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
系统是如何运行的
(1)启动VB,打开配套光盘的工程文件。
(2)如图10.48所示。
(3)出现如图10.49所示的工程属性的【通用】选项卡。
(4)打开模块Module1,查看名为Main的过程的代码如下。说明Main过程将启动名为frmMain的主窗体。
(图片较大,请拉动滚动条观看)
(5)编辑名为frmMain的主窗体,如图10.50所示。
(6)出现如图10.51所示的【菜单编辑器】界面,可以查看主窗体的菜单设计。
工程中设计的菜单如表10.8所示。
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
(7)为什么这些菜单可以调用这些子窗体或者执行退出主窗体的操作呢?在图10.50的主窗体中用鼠标双击,在出现的代码窗口中的主要代码如下。
―――――――――――――――――――――――――――――――――――――
‘选择菜单项DirectorInsertMenu后将显示子窗体FormInsertDirector
Private Sub DirectorInsertMenu_Click()
FormInsertDirector.Show
End Sub
‘选择菜单项DirectorSelectMenu 后将显示子窗体FormSelectDirector
Private Sub DirectorSelectMenu_Click()
FormSelectDirector.Show
End Sub
‘选择菜单项DirectorUpdateMenu后将显示子窗体FormUpdateDirector
Private Sub DirectorUpdateMenu_Click()
FormUpdateDirector.Show
End Sub
‘选择菜单项GraduateInsertMenu后将显示子窗体FormInsertGraduate
Private Sub GraduateInsertMenu_Click()
FormInsertGraduate.Show
End Sub
‘选择菜单项GraduateSelectMenu后将显示子窗体FormSelectGraduate
Private Sub GraduateSelectMenu_Click()
FormSelectGraduate.Show
End Sub
‘选择菜单项GraduateUpdateMenu后将显示子窗体FormUpdateGraduate
Private Sub GraduateUpdateMenu_Click()
FormUpdateGraduate.Show
End Sub
‘选择菜单项MajorInsertMenu后将显示子窗体FormInsertMajor
Private Sub MajorInsertMenu_Click()
FormInsertMajor.Show
End Sub
‘选择菜单项MajorUpdateMenu后将显示子窗体FormUpdateMajor
Private Sub MajorUpdateMenu_Click()
FormUpdateMajor.Show
End Sub
‘选择菜单项ExitMenu后将显示退出主窗体
Private Sub ExitMenu_Click()
End
End Sub
―――――――――――――――――――――――――――――――――――――
模块的设计
模块Module1的其他主要代码如下。
―――――――――――――――――――――――――――――――――――――
‘定义了名为ConnectString的无参数函数,连接数据库
Public Function ConnectString() As String
ConnectString = "DSN=graduateDB;UID=graduateuser;PWD=12345678"
End Function
‘定义了名为ExecuteSQL的带参数函数,参数SQL和MsgString都为字符串型。该函数用于执行SQL语句。
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
‘conn为ADODB的connection连接对象
Dim conn As ADODB.Connection
‘rest为ADODB的记录集对象
Dim rest As ADODB.Recordset
‘若执行SQL错误转向ExecuteSQL_Error标记处
On Error GoTo ExecuteSQL_Error
Set conn = New ADODB.Connection
‘连接数据库
conn.Open ConnectString
Set rest = New ADODB.Recordset
‘执行SQL字符串语句
rest.Open Trim$(SQL), conn, adOpenKeyset, adLockOptimistic
Set ExecuteSQL = rest
MsgString = "查询到" & rest.RecordCount & " 条记录"
‘执行SQL完毕后关闭连接和记录集
ExecuteSQL_Exit:
Set rest = Nothing
Set conn = Nothing
Exit Function
‘执行SQL错误时的处理方法
ExecuteSQL_Error:
MsgString = "查询错误: " & _
Err.Description
Resume ExecuteSQL_Exit
End Function
‘定义了名为Checktxt的带参数函数,参数txt为字符串型。该函数用于检测txt字符串是否有内容。
Public Function Checktxt(txt As String) As Boolean
If Trim(txt) = "" Then
Checktxt = False
Else
Checktxt = True
End If
End Function
―――――――――――――――――――――――――――――――――――――
各子窗体的设计
1.添加信息窗体的设计
打开名为FormInsertGraduate的子窗体,如图10.52所示。
窗体的设计如表10.8所示。
表10.8 子窗体FormInsertGraduate的设计
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
窗体的程序代码分析如下。
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
2.修改信息窗体的设计
打开名为FormUpdateGraduate的子窗体,如图10.53所示。
窗体的设计如表10.10所示。
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
窗体的程序代码分析如下。
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)
3查询信息窗体的设计
打开名为FormSelectGraduate的子窗体,如图10.54所示。窗体的设计如表10.11所示。
(图片较大,请拉动滚动条观看)
窗体的代码设计如下。
(图片较大,请拉动滚动条观看)
(图片较大,请拉动滚动条观看)