教务管理系统 数据库实例设计

来源:网络收集 时间:2025-06-10 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

第17章 数据库系统设计实例

本章以一个考务管理系统的设计过程为例,介绍在VB 6.0+SQL Server 2000环境中开发数据库系统的一般方法。

17.1 系统概述

17.1.1 系统功能

本系统用于从考生报名、产生准考证到录取考生和打印成绩单即对考生考试和录取全过程进行管理的考务系统,包含主要功能如下:

? ? ? ? ? ?

考生报名,按报名顺序产生报名号

产生准考生号和以紧凑方式打印准考证 输入考生考试成绩和输入录取合格标准 根据合格标准录取上线考生 打印考生成绩单和考生录取通知书 设置系统用户和系统初始化

17.1.2 设计技巧

本系统设计中的一些技巧如下: ? ? ? ?

公共模块设计(参见17.4节的Module1.Bas模块)

SQL Server数据库设计(参见17.3节)

VB菜单设计方法(包括菜单项的有效性设计,对于“一般操作员”,使若干菜单项无效。参见menu多文档窗体设计过程)

统一的数据编辑设计方法:以ksb表为例进行说明:为了编辑其记录,设计了edks窗体,在其中的DataGrid数据网格控件中显示所有已输入的考生记录。用户可以先通过“设置条件”框架查找到满足指定条件的考生记录,然后选择“修改”或“删除”命令按钮进行考生记录的修改或删除,或者选择“添加”命令按钮输入新的考生记录。 ? ? ?

VB报表设计方法(包括使用Data Report设计器和PrintForm方法) 图像数据的存取方法(参见edks窗体设计过程)

事件编程技术:一些数据编辑窗体(如edks等窗体)上有两个事件过程即Load和Activate,它们的执行过程是:在启动本窗体时先执行Load(仅执行一次)事件过程,

2 SQL Server 2000应用系统开发教程 然行执行Activate事件过程,在这类窗体中每次调用其他窗体或预览报表,执行完毕返回时执行Activate事件过程。以edks窗体为例,使用Load事件过程设置全局变量和初始化工作,在Activate事件过程中包含数据刷新语句,从而根据表中记录个数确定窗体中哪些命令按钮可用或无效,例如,当前表中没有有效记录时,执行修改和删除功能的命令按钮变为无效。正确地设计这两个事件过程是VB事件编程的关键。

注意:本系统虽然有很多窗体,但设计思想都是相同的,读者可先详细阅读edks和edks1两个窗体的代码(代码中提供了完整的注释),掌握其设计方法,再体会系统设计风格。

17.1.3 系统安装

本系统是一个可以在VB 6.0+SQL Server 2000环境中正常运行的原型系统,所有源程序存放在本书附带的光盘上,读者在Windows 9.X/NT/2000环境下安装好VB 6.0和SQL Server 2000后,按照光盘中Readme.txt文件的提示进行系统安装。安装完成后,读者可以在VB 6.0中打开系统文件进行查阅和学习。

17.2 系统结构

本系统对应的工程为KS.vbp,它包含的所有文件如图17.1所示,该系统的结构如图17.2所示。

设置本工程的启动对象为Sub Main主过程,该过程调用pass窗体。pass窗体提示用户输入相应的用户名/密码,并判断是否为合法用户。如果是非法用户(用户名/密码输入错误),则提示用户再次输入用户名/密码,若用户非法输入三次,便自动退出系统运行。如果是合法用户,则调用menu多文档窗体启动相应的菜单。该菜单的功能如下:

?

考生报名管理:包括报名处理、产生准考生证、打印准考证和退出系统等四项功

能。

? 考生成绩管理:包括考生成绩录入、合格准标录入、录取考生、打印成绩单和打?

印录取通知单等五项功能。

系统维护:包括用户设置和系统初始化等两项功能。

用户通过该系统菜单执行相应的操作。

第17章 数据库系统设计实例 3

图17.1 KS.vbp工程

1 Main主过程 2 pass窗体 3 menu窗体 考生报名管理 4 6 8 10 考生成绩管理 11 13 系统维护 15 edks窗体 quks窗体 7 edde窗体 edbj窗体 prde窗体 12 prtz窗体 setuser窗体 16 5 9 14 edks1窗体 quks1窗体 edde1窗体 DataReport1报表 DataReport2报表 setuser1窗体 注:图中括号内的数字表示该模块在17.4节中讨论的序号,例如2表示在17.4.2小节中介绍“pass窗体”的设计过程。

图17.2 系统结构图

4 SQL Server 2000应用系统开发教程 17.3 数据库设计

本系统以SQLServer2000作为数据库平台。在SQLServer2000中设计一个数据库KSD,其中包含如下数据表。并采用第15章介绍的方法建立对应的数据源KS。

1.ksb表

该表用于存放所有考生记录,包括基本数据如姓名、出生日期,和考试成绩数据。该表的结构如图17.3所示。每个考生都有惟一的报名号(从1开始连续编号),一旦报名完毕,便按照从头到尾的顺序加上年份产生准考证号。

注意:在本数据库中另有一个表tmpksb,它与ksb表结构完全相同,用作临时表产生相关报表。可用select * into tmpksb from ksb命令创建tmpksb表.

图17.3 ksb表结构

2.bzb表

该表用于存放录取考生的合格标准,其中只有一个记录,该记录指出各门课程的最低分和总分的最低分。只有各门成绩和总分都超过这个标准的考生才能被录取。该表的结构如图17.4所示。

第17章 数据库系统设计实例 图17.4 bzb表结构

5 3.oper表

该表用于存放本系统用户的信息。包括用户的用户名(最多10位)、密码(最多6位数字字符)和级别(只分“一般操作员”和“系统管理员”两类)。该表的结构如图17.5所示。

图17.5 oper表结构

17.4 系统实现

本节介绍图17.2中各组成部分的实现方法。对于窗体,给出执行功能、设计界面、主要对象的属性和方法以及相关的事件过程。对于报表,给出执行功能和设计界面。对于数据环境,给出详细的设计步骤。

本工程中引用了一些ActiveX控件,在设计时选择“工程”菜单中的“引用”命令,从引用列表中选中如下选项:

? Visual Basic For Applications

? Visual Basic runtime objects and procedures ? Visual Basic objects and procedures ? OLE Automation

? Microsoft ActiveX Data Object 17.6 Library

再选择“工程”菜单中的“部件”命令,从控件列表中选中如下选项: ? Microsoft ADO Data Control 6.0(OLEDB) ? Microsoft DataGrid Control 6.0(OLEDB) ? Microsoft DataList Control 6.0(OLEDB) ? Microsoft Windows Common Controls 6.0(SP4)

若列表框找不到第4项,则单击“浏览”命令按钮,出现“添加ActiveX控件”对话框,选择Windows\\System文件夹中的MsComctl.ocx文件即可。

6 SQL Server 2000应用系统开发教程 本工程中包含一个公共模块即Module1.Bas模块,其中包含一些全局变量和全局过程(被本工程中的一些窗体所调用),该模块的代码如下:

Public userlevel As String Public flag As Integer Public Num As Integer Public condstr As String Public recs As Integer Public sel As Boolean

Public Function exesql(ByVal sql As String) As ADODB.Recordset '用于执行用户给定的SELECT语句,返回对应的记录集 sql = Trim$(sql)

Set conn = New ADODB.Connection Set rst = New ADODB.Recordset

conn.ConnectionString = \ conn.Open

Set rst.ActiveConnection = conn rst.LockType = adLockOptimistic rst.CursorType = adOpenKeyset rst.Open sql Set exesql = rst Set rst = Nothing Set conn = Nothing End Function

Sub Main End Sub

Public Sub deldata(ByVal tn As String)

'删除指定表中所有记录,对于oper表添加一个系统用户,该过程用于数据表的初始化 Dim sql As String

sql = \ Set conn = New ADODB.Connection

conn.ConnectionString = \ conn.Open

conn.Execute sql

If Trim(tn) = \

'对于oper表,添加一个默认的用户

'主过程,作为本系统的启动对象

pass.Show vbModal

'释放记录集 '释放连接

'保存用户级别 '用作记录操作标记 '用于保存报名号 '条件字符串

'保存记录集中记录个数

第17章 数据库系统设计实例 sql = \系统管理员')\ conn.Execute sql End If conn.Close End Sub

Public Sub endata(Keyasc As Integer)

'用于文本框等编辑数据时将回车键转换成Tab键,方便用户输入数据 If Keyasc = 13 Then

SendKeys \将回车键转换成Tab键 End If End Sub

7 17.4.1 Main主过程

该过程作为本工程的启动对象,其代码放在公共模块Module1.Bas中。

17.4.2 pass窗体

本窗体用于接受用户的用户名/密码输入,判断是否为合法用户。如果是合法用户,释放该窗体并启动menu窗体;否则释放该窗体不启动menu窗体即退出系统运行。对于合法用户,用全局变量userlevel保存当前用户的级别。该窗体的设计界面如图17.6所示。

注意:本窗体中的两个文本框设计成文本框数组Text1,其中,Text1(0)文本框用于输入用户名,Text1(1)用于输入口令。在其他窗体界面中也多次使用类似的对象数组,其操作过程与这里的文本框数组相同。 pass窗体中包含的主要对象及其属性如表17.1所示。

图17.6 pass窗体设计界面

8 SQL Server 2000应用系统开发教程 表17.1 pass窗体中包含的主要对象及其属性

对象 属性 Caption MaxButton MinButton StartUpPosition \考务管理系统\0 'False 0 'False 2 '屏幕中心 \确定\\取消\\用户登录\\属性取值 pass窗体 Command1 Command2 Frame1 Text1(1) Caption Caption Caption PasswordChar 在本窗体上设计如下事件过程:

Dim n As Integer '模块级变量,用做登录次数累计

Private Sub Form_Load() n = 0 'n置初值0 End Sub

Private Sub Command1_Click() Dim mrc As ADODB.Recordset

txtsql = \用户名='\

Trim$(Text1(0).Text) & \& \And 口令 ='\& Trim$(Text1(1).Text) + \ Set mrc = exesql(txtsql)

If mrc.RecordCount = 0 Then '未找到用户记录 n = n + 1 If n < 3 Then

MsgBox \没有这个用户,继续登录\信息提示\ Text1(0).Text = \ Text1(1).Text = \ Text1(0).SetFocus Else

MsgBox \已登录失败三次,退出系统\信息提示\ mrc.Close Unload Me End If

Else '找到合法用户记录

userlevel = Trim(mrc.Fields(\级别\ mrc.Close

'非法用户输入次数增1

Unload Me

第17章 数据库系统设计实例 9 menu.Show '调用menu窗体 End If End Sub

Private Sub Command2_Click() Unload Me End Sub

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) Call endata(KeyAscii) End Sub

'调用endata全局过程

17.4.3 menu窗体

本窗体是一个多文档窗体,设计界面如图17.7所示,该窗体的属性设置如表17.2所示。在其上设计了一个菜单menu,该菜单的结构如下:

menu1(Caption=\考生报名管理\ ....menu11(Caption=\报名登记\ ....spc11(Caption=\

....menu12(Caption=\产生准考证号\ ....spc12(Caption=\

....menu13(Caption=\打印准考证\ ....spc13(Caption=\

....menu14(Caption=\退出\,Shortcut=^X) menu2(Caption=\考生成绩管理\ ....menu21(Caption=\成绩录入\ ....spc21(Caption=\

....menu22(Caption=\合格标准录入\ ....spc22(Caption=\

....menu23(Caption=\录取考生\ ....spc23(Caption=\

....menu24(Caption=\打印成绩单\ ....spc24(Caption=\

....menu25(Caption=\打印录取通知书\ menu3(Caption=\系统维护\

....menu31(Caption=\设置系统用户\ ....spc31(Caption=\

....menu32(Caption=\系统初始化\

10 SQL Server 2000

应用系统开发教程

图17.7 menu窗体设计界面 表17.2 main窗体的属性设置

对象 MDIForm 属性 Caption StartUpPosition WindowState 属性取值 \考务管理系统\3 '窗口缺省 2 'Maximized 在本窗体上设计如下事件过程:

Private Sub MDIForm_Load()

If Not userlevel = \系统管理员\ menu11.Enabled = False menu117.Enabled = False menu13.Enabled = False menu21.Enabled = False menu31.Enabled = False menu317.Enabled = False End If End Sub

Private Sub menu11_Click() edks.Show vbModal End Sub

Private Sub menu12_Click()

Dim n As Integer '用作准考证号自动递增

If MsgBox(\准考证号应在所有考生报名后产生,真的要产生准考证号吗?\

vbYesNo, \操作确认\

'使相关菜单项无效

第17章 数据库系统设计实例 Dim rs As ADODB.Recordset

Set rs = exesql(\ n = 1

If rs.RecordCount > 0 Then rs.MoveFirst

Do While Not rs.EOF

rs.Fields(\准考证号\

& trans(Trim(Str(n)))

n = n + 1 rs.MoveNext Loop

rs.UpdateBatch Else

MsgBox \不存在任何考生报名记录\信息提示\ End If rs.Close

MsgBox \所有考生的准考证号生成完毕!\信息提示\ End If End Sub

Public Function trans(ByVal no As String) '将数字串转化为固定长度为6的串,如2005转化为”002005” If Len(no) = 1 Then trans = \ ElseIf Len(no) = 2 Then trans = \ ElseIf Len(no) = 3 Then trans = \ ElseIf Len(no) = 4 Then trans = \ ElseIf Len(no) = 5 Then trans = no End If End Function

Private Sub menu13_Click() quks.Show vbModal End Sub

'调用quks窗体

11

12 SQL Server 2000应用系统开发教程 Private Sub menu14_Click() End End Sub

Private Sub menu21_Click() edde.Show vbModal End Sub

Private Sub menu22_Click() edbj.Show vbModal End Sub

Private Sub menu23_Click() '用于录取考生,即判断考生各科成绩是否高于相应标准 Dim rs As ADODB.Recordset Dim sql As String Dim de1 As Integer Dim de2 As Integer Dim de3 As Integer Dim de4 As Integer Dim de5 As Integer Dim n As Integer

If MsgBox(\真的要通过合格标准录取考生吗?\确认\ sql = \ Set rs = exesql(sql) If rs.RecordCount = 0 Then

MsgBox \尚未输入合格标准,不能录取\信息提示\ Else

de1 = rs.Fields(\数学\获取最低分数级 de2 = rs.Fields(\外语\ de3 = rs.Fields(\政治\ de4 = rs.Fields(\专业课\ de5 = rs.Fields(\总分\ End If rs.Close

sql = \ Set rs = exesql(sql) If rs.RecordCount = 0 Then

MsgBox \尚未输入考生,不能录取\信息提示\ Else

'调用edbj窗体 '调用edde窗体

rs.MoveFirst n = 0

第17章 数据库系统设计实例 13 Do While Not rs.EOF

If rs.Fields(\数学\外语\

And rs.Fields(\政治\专业课\And rs.Fields(\总分\

rs.Fields(\合格否\ n = n + 1

Else

rs.Fields(\合格否\

End If rs.MoveNext Loop

If n > 0 Then rs.UpdateBatch

MsgBox \考生录取完毕,共录取\名考生\

vbOKOnly, \信息提示\

End If rs.Close End If End Sub

Private Sub menu24_Click() prde.Show vbModal End Sub

Private Sub menu25_Click() prtz.Show vbModal End Sub

Private Sub menu31_Click() setuser.Show vbModal End Sub

Private Sub menu32_Click() '用于数据初始化

If MsgBox(\本功能要清除系统中所有数据,真的初始化吗?\

\确认初始化操作\

Call deldata(\ '调用deldata过程删除ksb表所有记录 Call deldata(\ '调用deldata过程删除bzb表所有记录

Call deldata(\ '调用deldata过程删除oper表所有记录,添加一个默认用户

'调用setuser窗体 '调用prtz窗体 '调用prde窗体

14 SQL Server 2000应用系统开发教程 MsgBox \系统初始化完毕,下次只能以1234/1234(用户名/口令)进入本系统\

vbOKOnly, \信息提示\

End If End Sub

17.4.4 edks窗体

该窗体用于编辑考生基本数据,包括报名号、姓名、性别、出生日期和通信地址,其中报名号是由系统自动产生的。其设计界面如图17.8所示,包含的主要对象及其属性设置如表17.3所示。

用户可以单击右下方的“添加”、“修改”和“删除”命令按钮执行相应的功能,在修改时不能改变报名号。

用户可以通过在设置条件框架中输入相应的条件后,单击“确定”命令按钮,在上方的数据网格中仅显示满足指定条件的考生记录。

当数据网格中不存在任何考生记录时,右下方的“修改”和“删除”命令按钮变得不可使用。

图17.8 edks窗体设计界面

表17.3 edks窗体中包含的主要对象及其属性设置

对象 edks 属性 Caption MaxButton MinButton StartUpPosition Adodc1 Visible Connect UserName

属性取值 \编辑考生\0 'False 0 'False 2 '屏幕中心 0 'False \\ 第17章 数据库系统设计实例 Password RecordSource \\\添加\\修改\\删除\\性别\\男\\女\\确定\\重置\\返回\7 \报名号\\报名号\\姓名\\姓名\\性别\\性别\\出生日期\\出生日期\\通信地址\\通信地址\\邮政编码\\邮政编码\\准考证号\

\准考证号\15 Comm1 Comm2 Comm3 Frame3 Opt1 Opt2 selcmd1 selcmd2 retCom DataGrid1 Column00 Caption Caption Caption Caption Caption Caption Caption Caption Caption ColumnCount DataField Caption Column01 DataField Caption Column02 DataField Caption Column03 DataField Caption Column04 DataField Caption Column05 DataField Caption Column06 DataField Caption 在本窗体上设计如下事件过程:

Private Sub Form_Load()

recs = Adodc1.Recordset.RecordCount '求出当前记录数,注意Num是全局变量 If recs > 0 Then

'已有考生时

Adodc1.Recordset.MoveLast '移到最后一个记录

Num = Val(Adodc1.Recordset.Fields(\报名号\ '求出最后一位考生报名号 Adodc1.Recordset.MoveFirst '移到开头记录 Else Num = 0 End If End Sub

'没有考生时,下一个考生报名号从0+1=1开始

16

SQL Server 2000应用系统开发教程 Private Sub Form_Activate() DataGrid1.SetFocus Call encomm End Sub

Private Sub Comm1_Click() '添加考生记录 flag = 1 End Sub

Private Sub Comm2_Click() '修改考生记录 Dim Num1 As String flag = 2

'flag=2表示是修改操作

Num1 = Adodc1.Recordset.Fields(\报名号\

'不能用DataDrid导航,应使用Find方法找到被修改的记录

Adodc1.Recordset.MoveFirst

Adodc1.Recordset.Find (\报名号='\ edks1.Show vbModal End Sub

'调用edks1窗体修改当前考生

'flag=1表示是添加操作 '调用edks1窗体

edks1.Show vbModal

'焦点移向DataGrid1控件

'调用本窗体中自定义的encomm过程

注意:上述过程(即Comm2_Click()过程)中有一个设计技巧,当用户在DataGrid1控件中选择某个考生记录进行修改时,Adodc1中的记录指针并没有指向该考生记录,即不能用DataDrid导航,应使用Find方法找到这个要修改的考生记录,从而使用户的操作与Adodc1中的记录指针同步,这样调用edks1窗体时就能正确修改用户选择的考生记录。否则,调用edks1窗体修改的总是Adodc1中的第一个考生记录。

Private Sub Comm3_Click()

If MsgBox(\真的要删除[\姓名\吗?\

vbYesNo, \信息提示\

Adodc1.Recordset.Delete recs = recs – 1 Call encomm End If End Sub

Private Sub retCom_Click() Unload Me

'退出并释放本窗体

Adodc1.Recordset.Update

'删除当前记录 '记录数减1

'保存当前操作到ksb表中 '调用本窗体中自定义过程encomm

End Sub

第17章 数据库系统设计实例 17 Private Sub selcmd1_Click() '确定 If Trim(Text1(1).Text) <> \

If Not IsDate(Trim(Text1(1).Text)) Then

MsgBox \出生日期输入错误,应为yy-mm-dd类型\信息提示\ Text1(1).SetFocus Exit Sub End If End If

condstr = \条件表达式,以下代码根据设置条件框架建立condstr If Trim(Text1(0).Text) <> \ If condstr = \

condstr = \姓名 like'\ Else

condstr = condstr + \姓名 like '\ End If End If

If Trim(Text1(1).Text) <> \ If condstr = \

condstr = \出生日期='\

\

Else

condstr = condstr + \出生日期='\

\

End If End If

If Trim(Text1(2).Text) <> \ If condstr = \

condstr = \通信地址 like'\ Else

condstr = condstr + \通信地址 like'\ End If End If

If Opt1.Value = True Then If condstr = \ condstr = \性别='男'\ Else

condstr = condstr + \性别='男'\

'集点移向Text1(1)文本框,这里使用了文本框数组 '退出本过程

18 End If

SQL Server 2000应用系统开发教程 ElseIf Opt17.Value = True Then If condstr = \ condstr = \性别='女'\ Else

condstr = condstr + \性别='女'\ End If End If

If condstr <> \有条件,根据condstr返回相应的记录集 Adodc1.RecordSource = \ Adodc1.Refresh

Else '无条件,返回ksb表中所有记录 Adodc1.RecordSource = \ Adodc1.Refresh End If

recs = Adodc1.Recordset.RecordCount If recs = 0 Then

MsgBox \没有任何满足条件的记录\信息提示\ End If Call encomm End Sub

Private Sub selcmd2_Click() '重置,将设置条件框架中的所有输入清空 Text1(0).Text = \ Text1(1).Text = \ Text1(2).Text = \ Opt1.Value = False Opt17.Value = False End Sub

Private Sub encomm()

'自定义子过程:判断Adodc1中是否存在记录,使相应命令按钮无效或有效 If recs = 0 Then

Comm17.Enabled = False Comm3.Enabled = False Else

Comm17.Enabled = True Comm3.Enabled = True End If

'调用本窗体中设计的自定义过程encomm

End Sub

第17章 数据库系统设计实例 19 Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer) Call endata(KeyAscii) End Sub

'调用全局过程endata

17.4.5 edks1窗体

该窗体被edks窗体所调用,以实现ksb表中记录基本数据的编辑。用户单击“确定”命令按钮时,记录编辑有效,即保存用户的修改;单击“取消”命令按钮时,记录编辑无效,即不保存用户的修改。在编辑记录时可以单击“...”命令按钮选择相应的照片位图文件(.bmp),一旦选好后,右边的图像框中显示该位图文件。

窗体中有一个公共对话框CommonDialog1控件,主要使用它的FileName属性保存文件名。

其设计界面如图17.9所示,其中包含的主要对象及其属性设置如表4.4所示。

图17.9 edks1窗体设计界面

表17.4 edks1窗体中包含的主要对象及其属性设置

对象 edks1 属性 Caption MaxButton MinButton Adodc1 Visible Connect UserName Password RecordSource CommonDialog1

FileName 属性取值 \编辑考生记录\0 'False 0 'False 0 'False \\\\\文件名 StartUpPosition 2 '屏幕中心 20 SelCom Frame2 Opt1 Opt2 Image1 Comm1 Comm2 SQL Server 2000应用系统开发教程 Caption Caption Caption Caption Stretch Caption Caption \\性别\\男\\女 -1 'True \确定

,在出现的快捷菜单中选择“属性”项,出现“Data Link Properties”对话框。

(3) 在该对话框中选择“Provider”选项卡,从列表中选择“Microsoft OLE DB Provider for ODBC Drivers”,如图17.18所示。

(4) 选择“Connection”选项卡,单击“Use connection string”选项,单击“Build”命令按钮,在出现的“Select Data Source”对话框中选择“Machine Data Source”选项卡,从列表中选择“KS”数据源。此时出现“SQL Server Login”对话框,除去“Use Trusted Connection”复选框前的勾,在Login ID文本框中输入“sa”,单击“OK”命令按钮返回,出现如图17.19所示的界面。

(5) 选择“All”选项卡,将“Persist Security info”之设置改为“False”,如图17.20所示。

(6) 右击“Connection1”,在出现的快捷菜单中选择“添加命令”项,出现“Command1属性”对话框,按图17.21所示进行设置。这样就建立好了DataEnvironment1,其结果如图17.22所示。

图17.17 设置数据环境(1)

44 SQL Server 2000应用系统开发教程

图17.18 设置数据环境(2)

图17.19 设置数据环境(3)

图17.20 设置数据环境(4)

第17章 数据库系统设计实例 45

图17.21 设置数据环境(5)

图17.22 设置数据环境(6)

在建立数据环境后,选择“工程”菜单项中的“添加Data Report”项,启动VB报表设计器,设计DataReport1报表如图17.23所示。

将DataReport1报表的Caption属性设置为“考生成绩通知单报表”,DataSource属性设置为“DataEnvironment1”,DataMember属性设置为“Command1”。

46 SQL Server 2000应用系统开发教程 单击此按钮出现报表对象的属性窗口

图17.23 DataReport1报表设计界面

17.4.13 prtz窗体

该窗体用于打印考生成绩单。其设计界面如图17.24所示,包含的主要对象及其属性设置如表17.11所示。

用户可以通过在设置条件框中输入相应的条件后,单击“确定”命令按钮,在上方的网格中仅显示满足指定条件的考生记录。然行单击“打印通知书”命令按钮便出现网格中所有记录的预览界面。

当网格中不存在任何考生记录时,右下方的“打印通知书”命令按钮变得不可使用。

图17.24 prtz窗体设计界面

第17章 数据库系统设计实例 表17.11 prtz窗体中包含的主要对象及其属性设置

对象 属性 Caption MaxButton MinButton 属性取值 \打印录取通知书\0 'False 0 'False \打印通知书\\返回\\\\\合格否=-1\\\性别\\女\\男\\确定\\重置\12 \报名号\\报名号\\姓名\\姓名\\性别\\性别\\通信地址\\通信地址\\邮政编码\\邮政编码\\准考证号\\准考证号\\合格否\\合格否\\数学\\数学\\外语\\外语\47 prde StartUpPosition 2 '屏幕中心 Comm1 Comm2 Adodc1 Caption Caption Connect UserName Password RecordSource Caption Frame3 Opt2 Opt1 selcmd1 selcmd2 DataGrid1 Caption Caption Caption Caption Caption ColumnCount Column00 DataField Caption Column01 DataField Caption Column02 DataField Caption Column03 DataField Caption Column04 DataField Caption Column05 DataField Caption Column06 DataField Caption Column07 DataField Caption Column08 DataField Caption

48 SQL Server 2000应用系统开发教程 Column09 DataField Caption Column10 DataField Caption Column11 DataField Caption \政治\\政治\\专业课\\专业课\\总分\\总分\在本窗体上设计如下事件过程:

Private Sub Form_Load()

recs = Adodc1.Recordset.RecordCount condstr = \条件表达式 End Sub

Private Sub Form_Activate() DataGrid1.SetFocus Call encomm End Sub

Private Sub Comm1_Click() Dim sqltxt As String sqltxt = \

Set conn = New ADODB.Connection

conn.ConnectionString = \ conn.Open

conn.Execute sqltxt If condstr = \

sqltxt = \合格否=-1\ Else

sqltxt = \into tmpksb select * from

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库教务管理系统 数据库实例设计在线全文阅读。

教务管理系统 数据库实例设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/186564.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219