1基础数据:对题库的基础数据进行编辑、和查询管理 2设定类型:对实验题库的试题类型进行设定。 3设定科目:对实验题库的试题科目进行设定。 4 出试卷: 对进入题库的记录进行出卷。 5查询 :对各个表进行查询 6 打印:打印出记录,以备分析 二. 系统数据分析 1、数据录入和处理的准确性和实时性 数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。 在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。 2、 数据的一致性与完整性 由于系统的数据是共享的,在不同的题库类别中,题库是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。 对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。 3、 数据的共享与独立性 整个题库发布系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性。 三 系统的逻辑模型 第五章 系统总体规划 系统功能 一. 系统的设计思路 1 应用程序设计结构 1 建立数据库,基本资料就存放在其中 通过Access建立数据库 2 用VB开发出界面连接数据库 使用ADO控件的连接数据库,通过 DATAGRID 和 TEXT显示出来。 . 3 在应用程序中用查询和统计等手段对数据库的资料进行处理,得到有效的数据,分析管理情况,得出结论和措施,然后就可以通过措施,达到管理提高效率的目的。 具体是具体实现办法 (1)连接数据源 利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法. 语法: Connection对象.Open ConnectionString, UserID, PassWord, OpenOptions 其中: Connection对象为你定义的Connection对象的实例; ConnectionString为可选项,包含了连接的数据库的信息; UserID 可选项,包含建立连接的用户名; PassWord为可选项,包含建立连接的用户密码; OpenOptions为可选项,假如设置为adConnectAsync,则连接将异步打开. (2)打开记录集对象 实际上记录集返回的是一个从数据库取回的查询结果集.因此他有两种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法. (a)记录集的Open方法 语法: Recordset.Open Source, ActiveConnection, CursorType, LockType, Options 其中: Recordset为所定义的记录集对象的实例. Source可选项,指明了所打开的记录源信息.可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名. ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串. CursorType可选项,确定打开记录集对象使用的指针类型. LockType可选项 确定打开记录集对象使用的锁定类型. (b)Connection对象的Execute方法 语法: Set recordset=Connection.Execute(CommandText,RecordsAffected,Options) 参数说明: CommandText 一个字符串,返回要执行的SQL命令,表名,存储过程或指定文本. RecordsAffected 可选项,Long类型的值,返回操作影响的记录数. Options 可选项,Long类型值,指明如何处理CommandText参数. 介绍完了如何打开数据库下面说说怎么使用吧. (3)使用记录集 (a)添加新的记录: 在ADO中添加新的记录用的方法为:AddNew 它的语法为: Recordset.AddNew FieldList, Values Recordset为记录集对象实例 FieldList为一个字段名,或者是一个字段数组. Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么Values必须也为一个个数,类型与 FieldList相同的数组. 再用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.不过你最好在用UpDate方法之前使用CancelUpdate方法来取消该项操作. (b)修改记录集 其实修改核对记录集中的数据重新赋值没有什么太大的区别,只要用SQL语句将要修改的字段的一个数据找出来重新赋值就可以了.这里不再细说了. (c)删除记录 在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了. 它的语法如下: Recordset.Delete AffectRecords 其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下: adAffectCurrent 只删除当前的记录 adAffectGroup 删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性. (d)查询记录 在ADO中查询的方法很灵活,有几种查询的方法. ●使用连接对象的Execute方法执行SQL命令,返回查询记录集. ●使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集. 第一个方法的具体语法在前面数据连接时已经介绍过了,下面就第二方法具体说一下. Command对象的Execute方法的语法如下: Command.Execute RecordsAffected, Parameters, Options '不返回记录集 或者 Set Rscordset=cmmnad.Execute(RecordsAffected,Parameters,Options) '返回记录集 CommandText的语法为: Command.CommandText=stringvariable 其中: stringvariable为字符串变量,包含SQL语句,表名或存储过程. (4) 断开连接 在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序. 使用的方法为:Close方法. 语法如下: Object.Close ' Object为ADO对象 二. 系统的技术要点 1多用户登陆问题 a 建立模块,Module1 b 在模块中申明变量 Public user c 在数据库建立用户表,存放用户名和密码,然后输入多个用户 d 通过ADO代码连接到数据库。 E 通过SQL语句 判断是否用户数据库有。 F 如果没有则退出。 G 如果有 通过SQL语句判断是否密码正确。 H 如果正确则发送数据库的该用户名到公共变量 user = myrs("user") I 通过变量决定各个用户的权限。 2 出试卷 手动出试卷 将题库的一个字段设为是否出试卷。 然后通过SQL语句筛选出记录,形成出试卷库。 SELECT * FORM TK WHERE 是否出卷=“是” 自动出试卷 获得随即数,然后自动出题 nb = myrs3.RecordCount rdnb = Int((nb) * Rnd()) '获得随机数 myrs3.Move rdnb t1 = CStr(myrs3("编号")) ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' myrs2.Open "insert into sj select * from tkgl2 where 编号='" + t1 + "' ", mycn, adOpenKeyset, adLockOptimistic myrs3.Delete myrs3.MoveFirst 3 多级查询问题 单级查询使用 SELECT * FORM TK WHERE 字段 =SS
多级查询使用 SELECT * FORM TK WHERE 字段1 =SS AND字段2 =SS2 第五章 系统具体实现 首先建立模块,用来存放公共变量
Public user 一. 用户界面的实现 1.登陆界面 在工程引用ADO2.0。 在命令按钮单击写下连接数据库USER表的判断语句 Private Sub Command1_Click() mname = Text1.Text pass = Text2.Text Dim mycn As New ADODB.Connection Dim myrs As New ADODB.Recordset Set myrs = New ADODB.Recordset mycn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=kygl.mdb;" myrs.Open "SELECT * FROM [user] where (user.user)='" + mname + "';", mycn, adOpenKeyset, adLockOptimistic If myrs.BOF = True And myrs.EOF = True Then MsgBox "查无此人", , "登陆信息" Else If myrs("pass") = pass Then '''''''''''''''''''''''''''''''''''''''''' MsgBox "ok", , "登陆信息" user = myrs("user") Form2.Show Unload Me ''''''''''''''''''''''''''''''''''''''''''''''''''' Else MsgBox "密码不正确", , "登陆信息" End If End If End Sub 目的是USER表没有该用户,将无法使用本程序 user = myrs("user ") 将公共变量user设为用户的身份 2. 主界面
主界面包含几方面的内容,以下一一介绍: 首先在用户管理判断出是否管理员 If user = "管理员" Then Form3.Show Else MsgBox "身份错误" 如果不是则无法进行用户管理 各个模块的实现 1基础数据:对题库的基础数据进行编辑、和查询管理 通过ADO控件连接到数据库的R基础数据表,通过SQL语句 “SELECT * from;“ 筛选出全部记录 用DATA GRID控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。属性设为可写。 2设定类型:对实验题库的试题类型进行设定。 通过ADO控件连接到数据库的实验题库表 用DATA GRID控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。 3设定科目:对实验题库的试题科目进行设定。 通过ADO控件连接到数据库的实验项目表 用DATA GRID控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。 4 出试卷: 对进入题库的记录进行出卷。 通过ADO控件连接到数据库的出入库表,通过SQL语句选出出试卷的记录 5查询 :对各个表进行查询 通过ADO控件连接到数据库的各个表,通过SQL语句 ss = Text3.Text Adodc3.RecordSource = "select * from sb where ='" + ss + "'" Adodc3.Refresh 筛选出全部记录 用DATA GRID控件,将它的数据源设为ADO控件,将它的各列显示出数据库的各列。属性设为可写。 6 自动出题 通过随机函数获得随机数,然后自动出题。 For i = 1 To j nb = myrs3.RecordCount rdnb = Int((nb) * Rnd()) '获得随机数 myrs3.Move rdnb t1 = CStr(myrs3("编号")) ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' myrs2.Open "insert into sj select * from tkgl2 where 编号='" + t1 + "' ", mycn, adOpenKeyset, adLockOptimistic myrs3.Delete myrs3.MoveFirst 二. 数据库的实现 基础数据表 上一页 [1] [2] [3] [4] [5] [6] [7] 下一页 |