【学生信息管理系统】模块代码的理解

学生信息管理系统中,最难理解的代码就是模块中的,理解了模块中的一些代码,学生信息管理系统基本上就掌握了,剩下的窗体中的代码都是重复的。模块中的代码又以ExecuteSQL函数最费解。

<span style="font-size:14px;">Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset '参数SQL传递查询语句,MsgString传递查询信息

    Dim cnn As ADODB.Connection                                                             '定义连接
    Dim rst As ADODB.Recordset                                                              '定义记录集
    Dim sTokens() As String                                                                 '定义字符串
    
    On Error GoTo ExecuteSQL_Error                                                          '异常处理
    
    sTokens = Split(SQL)                                                                    '用Split函数产生一个包含各个子串的数组
    
    Set cnn = New ADODB.Connection                                                          '创建连接
    cnn.Open ConnectString                                                                  '打开连接
    
    If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then                              '判断字符串中是否含有指定内容。
        cnn.Execute SQL                                                                     '执行SQL语句
        MsgString = sTokens(0) & "query successful"                                         '返回查询信息
    Else
        Set rst = New ADODB.Recordset                                                       '创建数据集对象
        rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic                            
        Set ExecuteSQL = rst
        MsgString = "查询到" & rst.RecordCount & "条记录"
    End If

ExecuteSQL_Exit:
    Set rst = Nothing                                                                        '清空数据集对象
    Set cnn = Nothing                                                                        '中断连接
    Exit Function
ExecuteSQL_Error:                                                                            '错误类型判断。
    MsgString = "查询错误:" & Err.Description
    Resume ExecuteSQL_Exit
End Function</span><span style="color: red; font-family: Calibri;font-size:18px;"> </span>

sTokens = Split(SQL)

Split 函数:返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

 写一句SQL语句:"select *from student_Info"

                执行sTokens=SplitSQL

                sTokens0="select"

               sTokens1="*"

                sTokens2="from"

              sTokens3="student_Info"

         这样就把一个查询语句拆分成了一个数组

<span style="color: rgb(255, 0, 0); font-family: 宋体; font-size: 18px;">If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then</span>

Instr函数:返回 Variant (Long)

     InStr([start, ]string1, string2[, compare]),下标从1开始,返回指定一字符串在另一字符串中最先出现的位置。在字符串string1中,从start开始找string2,省略start时,string1头开始找。找不到时,函数值为0

Ucase$函数:返回 Variant(String),其中包含转成大写的字符串。只有小写的字母会转成大写;原本大写或非字母之字符保持不变。

Execute 方法:运行动作查询或执行 SQL 语句,它们都不返回行。


rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic  


语法格式:

recordset.Open Source, ActiveConnection, CursorType, LockType, Options

 

参数说明:

  1.  Source可选。Variant,计算有效的 Command 对象、SQL 语句、表名、存储过程调用、URL 或包含持久存储的 Recordset 的文件或 Stream对象的名称。
  2. ActiveConnection可选。Variant 或 String,Variant 用于计算有效的 Connection 对象变量的名称;String 包含ConnectionString 参数。
  3. CursorType可选。CursorTypeEnum 值,确定当打开 Recordset 时提供者应使用的游标类型。默认值为 adOpenForwardOnly。
  4. LockType可选。LockTypeEnum 值,确定打开 Recordset 时提供者应使用的锁定类型(并发)。默认值为 adLockReadOnly。
  5. Options可选。Long 值,指示如果 Source 参数表示的不是 Command 对象,提供者应如何计算该参数;或者指示应从先前保存 Recordset的文件中恢复 Recordset。可以是一个或者多个 CommandTypeEnum 或 ExecuteOptionEnum 值。

 其中:

1、CursorType参数的取值:

  • adOpenDynamic-使用动态游标。其他用户所作的添加、更改或删除均可见,而且允许Recordset 中的所有移动类型(如果提供者不支持书签,则书签除外)。
  • adOpenForwardOnly-默认值。使用仅向前游标。除了在记录中只能向前滚动外,与静态游标相同。当只需要在Recordset 中进行一个传递时,用它可提高性能。
  • adOpenKeyset-使用键集游标。尽管从您的Recordset 不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所作的数据更改依然可见。
  • adOpenStatic-使用静态游标。一组记录的静态副本,可用于查找数据或生成报告。其他用户所作的添加、更改或删除不可见。
  • adOpenUnspecified-不指定游标类型。

 2、LockType参数的取值:

  • adLockBatchOptimistic-指示开放式批更新。需要批更新模式。
  • adLockOptimistic-指示逐个记录开放式锁定。提供者使用开放式锁定,仅在调用Update 方法时锁定记录。
  • adLockPessimistic-指示逐个记录保守式锁定。提供者要确保记录编辑成功,通常在编辑之后立即在数据源锁定记录。
  • adLockReadOnly-指示只读记录。无法改变数据。
  • adLockUnspecified-未指定锁定类型。创建副本时,副本与源对象使用相同的锁定类型。
学生信息管理系统中,许多的VB代码知识,都是接触过的,综合以前学过的VB知识,模块部分才是最应该认认真真去学习的。



在日常办公中有许多常用的个人数据,如朋友电话、邮件地址、日程安排、日常记事、文件上传和下载,这些都可以用一个个人信息管理系统进行管理。个人信息管理系统可以内置于手掌上的数字处理器,以提供电子名片、便条、行程管理等功能。本项目基于B/S设计,也可以发布到网上,用户可以随时存取个人信息。 用户可以在系统中任意添加、修改、删除个人数据,包括个人的基本信息、个人通讯录、日程安排、个人文件管理。 要实现的功能包括四个方面: (1)登录与注册 系统的登录和注册功能。 (2)个人基本信息管理模块 系统中对个人基本信息的管理包括:个人的姓名、性别、出生日期、民族、学历、职称、登录名、密码、电话、家庭住址等。 (2)用户个人通讯录模块 系统的个人通讯录是保存了个人的通讯录信息,包括自己联系人的姓名、电话、邮箱、工作单位、地址、QQ等。可以自由添加联系人的信息,查询或删除联系人。 (3)日程安排模块 日程模块记录自己的活动安排或者其它有关事项,如添加从某一时间到另一时间要做什么事,日程标题、内容、开始时间、结束时间。可以自由查询,修改,删除。 (4)个人文件管理模块模块实现用户在网上存储临时文件的功能。用户可以新建文件夹,修改、删除、移动文件夹;上传文件、修改文件名、下载文件、删除文件、移动文件等。
为实现用户需求,从需求分析阶段的数据流图出发,根据小组讨论后确定的最佳方案。本系统主要包括两大功能模块:学生信息和成绩信息两个系统。其中学生信息系统划分为七个模块,学生成绩划分为四个模块。然后在需求分析阶段所确定的系统数据需求的基础上,进一步设计数据结构。在测试过程中,先对单个模块进行测试,然后把模块连接起来进行测试。测试完成后书写文档,最后小组成员和用户在一块审查和复审。 1、 课题陈述 一方面,在时下这个飞速发展的信息社会中,直到今天仍然没有一套完善可行的学生信息管理系统出现在学校里。每年,从大专生、本科生到硕士生、博士生,几千人的入学、升学、毕业,全要由教务处和各系老师人工管理。信息量之巨大,工作量之繁重,是难以想象的。因此,学校和各个系都要安排多名教师专门负责学生学籍管理,浪费了大量的人力资源。然而,即使这样,管理仍然谈不上井井有条。举一个最简单的真实例子,一个同学的姓名在花名册里印错了,就一错错了三年,一直没能改正。同学想去改,却不知道是应该找系里,还是去找教务处。还有,当学生的基本信息,比如家庭住址、电话等变更后,无法及时在档案中修改,使得老师与同学无法联系沟通。 另一方面,从社会这方面讲,随着计算机的普及,越来越多的学校利用计算机来处理日常事务。面对众多的数据资料,很多管理者常常感到无从下手。在数字化的今天,我们需要一个学生管理系统,使我们的整体管理水平上一个档次,与如今这个高科技的信息社会接轨。 因此,如何有效的管理学生信息,帮助学校和老师管理和掌握这些情况,这就是学生信息管理系统需要完成的任务。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值