可以在MSFLEXGRID 中添加记录吗?

szsoft 2003-08-24 05:34:08
可以在MSFLEXGRID 中添加记录吗?
...全文
30 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liul17 2003-08-25
  • 打赏
  • 举报
回复
如果是直接录入,也是可以的
msflexgrid1.additem "" '增加一空行
然后用粘文本框的方法即可实现
liul17 2003-08-25
  • 打赏
  • 举报
回复
可以,
dim rd as recordset
set rd = db.openrecordset(...)
do while not rd.eof

msflexgrid1.additem XX & vbtab & XX & vbtab & XX
rd.movenext
loop
onlineboy 2003-08-24
  • 打赏
  • 举报
回复
当然可以
with msflexgrid1
.row=5
.col=3
.text="手工纪录"
end with
smallcake 2003-08-24
  • 打赏
  • 举报
回复
不能,只有datagrid,dbgrid控件能
一.系统模块的实现 在系统包括以下功能:系统管理、学籍信息管理、课程信息管 理、成绩信息管理、帮助。分为以下几个模块 主窗体 标 题 名 称 系统管理 sysMenu ……用户管理 Control ……退出系统 Exit 学籍管理 sInfo 课程管理 cInfo 成绩管理 rInfo 帮助 help ……使用说明 howto ……关于 about 1.1登录模块 为了系统的安全,在进入系统之前首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。 用户登录窗体放置了两个文本框(Textbox),用来输入用户名和密码;两个按钮(CommandButton)用来确定或者取消登录。 设置一个SSTab控件,供不同用户登录时选择用户权限,超级用户拥有一切权限(包括添加删除和修改以及对用户的管理),普通用户拥有受限制的权限(查询及修改密码),提高了数据库的安全性。 1.2系统管理模块 1.2.1添加用户窗体的创建 进入系统后,将会出现一个主窗体,选择系统管理模块下的添加用户,就可以进入添加用户窗体,可以通过该窗体增加新的用户。 在这个窗体放置了三个文本框,用来输入用户名和密码;两个按钮用来确定是否添加用户;三个标签用来标示文本框的提示。 1.2.2修改密码窗体的创建 在系统管理模块下,进入修改密码窗体,用户可根据需要修改自己的密码。 在这个窗体放置了两个文本框,用来输入密码和确认密码;两个按钮用来确定是否修改密码;两个标签用来标示文本框的内容。 1.3学籍管理模块 1.3.1添加学籍信息功能 选择主窗体学籍管理模块下的添加学籍信息,就可进入添加学籍信息的窗体,在该窗体我们可以对学生的学号、姓名、性别、出生日期、班号等学生的信息进行添加。设计时我尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,当输入的信息满足这些边界条件时,将会弹出一个提示框提醒用户,以便用户能及时地做出修改。添加的信息将全部存储到数据库。 在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息;两个按钮用来确定是否输入学籍信息;一个按钮用来退出窗体;多个标签用来提示文本框需要输入的内容。 1.3.2修改学籍信息功能 点击学籍管理模块下的修改学籍信息,就进入修改学籍信息的窗体,在该窗体我们可以对前面添加的学籍信息进行修改。由于用户的需求不同,有的是要对学生的信息做个别的改动,有的是需要删除该条记录,所以该窗体同时包括了修改记录的功能和删除记录的功能。又考虑到用户的误操作,为了方便,我在该窗体增添了取消修改的功能,可一次性把输入文本框的内容全部置空。 1.3.3查询学籍信息功能 进入学籍管理模块下的查询学籍信息窗体,在该窗体可以对学生的信息进行查询,有三种查询方式。我在设计时,一方面考虑到简洁的因素,用户可以只设置一种查询方式进行查询;另一方面又为了避免数据的重复,用户可以输入详细的信息,也就是同时设置多种查询方式进行查询。进入查询窗体时,myflexgrid会显示出所有学生的学籍信息,如果不设置查询方式就进行查询,是无效查询,系统会给出提示。在设置好查询方式后,便开始查询,将在myflexgrid显示出用户所需的学生的学籍信息。 1.4课程管理模块 1.4.1课程信息浏览功能 点击主窗体课程管理模块下的课程信息浏览,可进入课程信息浏览窗体。为了用户的使用方便,我使用了SSTab控件,故在该窗体同时包含了课程信息的添加和修改的功能。并且我还在窗体上设置了myflexgrid控件。添加和修改记录后,对于数据有何变化都可以在myflexgrid显示出来,使用户对所做的操作一目了然。 1.4.2年级课程设置功能 进入课程管理模块下的年级课程设置窗体,可以对每一个年级的课程进行设置。 1.5成绩管理模块 1.5.1成绩信息管理功能 点击成绩管理模块下的成绩信息浏览,进入成绩信息浏览窗体,考虑到美观和实用性,界面设置如下图。用Frame控件在窗体划定一个可浏览成绩信息地方,再在Frame添加MSFlexGrid控件,运行时将在MSFlexGrid显示所有学生的成绩信息。使用Toolbar来建立工具条。点击工具条的修改、添加和查询按钮就可分别进入修改成绩信息窗体、添加成绩信息窗体和查询成绩信息窗体。这三个窗体的界面设置分别类似于学籍管理下修改学籍信息窗体、添加学籍信息窗体和查询学籍信息窗体。 1.6其它 操作人员在遇到困难时即可进入帮助菜单寻求帮助。帮助菜单下的“使用说明”将解答你的疑问。帮助菜单下的“关于”详细地列出了关于作者的一些情况,关于版权的一些情况和关于系统的一些情况。进入打印菜单栏,可对你所需要的信息进行打印。 二 系统后期工程 在开发这个软件系统的漫长过程,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,在本次设计过程,我采用循环测试法,力求在每个阶段结束之前通过严格技术审查,即每完成一个功能,就进行测试,尽可能早的发现并纠正差错,完成模块测试之后再进行系统测试。 在该设计,我偏重考虑了当用户输入的信息出错时,系统就会出现提示,以便让用户知道出错的原因,并能及时做出修改,所以我站在用户的角度考虑,尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,以此来发现错误,纠正错误,取得了一定的效果。 当然,该学生信息管理系统也存在一些不足之处。在成绩管理界面,当3次改变成绩为不同的内容时,程序会出错。虽然尝试了很多方法,仍不能解决。再一点就是关于打印和年级课程信息设置都未能实现,这有待于以后的进一步提高。 一个应用系统性能的优劣,效率的高低始终应当由用户来做出判决,应用系统在运行过程,用户会提出一些新的需求和建议,我就会根据用户需求的变化,对本系统做出一定的修改,使其进一步地得到完善和提高。 1. 概述 1.1. 目的 为了彻底解决了长期困扰教学信息化工作当安全性、可靠性的问题;为了使管理人员可以随时看到更新的数据,极大地提高信息传递的速度;为了管理者再也不必为聘用专门的操作人员来给众多教师编辑学生成绩资料而殚精竭虑,在此,设计了学生课程成绩查询管理信息系统,使得各个使用者在操作上,从此变得那么从容简单,省时又省心。 1.2. 参考文档 [1] 张海藩.软件工程导论[M].第4版.北京:清华大学出版社.2007.25-63. [2] 赵洋,张丽,王恩东,李玉红.基于B/S结构学生成绩管理系统设计与实现[J].沈阳化工学院学报.2007,21(2).140-142. [3] 游应德.基于Intemet的学生信息管理系统—学生成绩管理系统[D].电子科技大学.成都:电子科技大学,2007. [4]郑若忠,王鸿武.数据库原理与方法.湖南科学技术出版社.  2. 总体结构设计 2.1. 层次图 2.2结构图 2.3 功能设计 学生成绩单录入部分可以对某一个学生进行成绩录入,但是一次只能录入一条成绩记录,同时可对缺考、免考、补考学生成绩进行录入。 学生成绩显示/修改部分可以对已录入的成绩进行显示和修改,但是只能对系统默认的当前学期的记录进行修改。 学生成绩显示/删除部分可以对已录入的成绩进行显示和删除,但是也只能对系统默认的当前学期的记录进行删除。 2.3. 运行环境设计 2.3.1. 硬件设计 1.服务器: CPU:P4 2.0G以上 内存:512M 硬盘:60G以上 网络:100M /1000M Ethenet 2.客户机: CPU:500Mz 内存:64M以上 硬盘:1G以上 网络:10M Ethenet 2.3.2. 软件设计 1.服务器: 操作系统:Windows 2000/XP/2003 WEB服务:IIS5.0 数据库:SQL Server 2000(建议打Service Pack 3补丁) 2.客户机: 操作系统:Windows系列之一 浏览器:IE6.0以上版本 2.3.3.网络设计 采用sql server2000网络关系型数据库,存储读取数据将同步进行。 3.详细设计 用判定树表示教师端模块 4. 数据结构设计 4.1. 数据分析 第一层:基础数据及基础数据库分析 此类报表主要反映学校教师、学生和课程等的资料情况。 此类报表是将系统较为常用的学生、教师和课程等基础资料以报表的形式予以反映。 在本层需要设计三个主表,分别用来存储学生资料、教师资料和课程资料。 第二层:业务流程数据及业务流程数据库分析 在编辑此类表单时,可以点击相应的下拉按钮,这时所有的选项资料都会显 来,您可以根据实际情况来编制表单,使整个过程更加清晰,操作更加简便。 在本层需要设计一个学生成绩主表,用来存储学生的平时成绩表。 4.2. 数据库设计 4.2.1. 设计原则 1.密码管理:学生修改学生查询密码;教师可以修改查询密码。 2.每个教师可以查看所有学生的成绩,包括每门课程的成绩、每门课程的平均成绩、每个分数段的成绩。 3.学生根据自己的学号查询本人的成绩。 4.教师可以登记、修改、查询自己所讲授课程的学生的成绩、该课程的总分、平均成绩、各分数段成绩人数统计、不及格学生的名单、成绩等等。 4.2.2. 数据库组成 数据表3个: 学生表(5个字段: xh, xm, xb, csrq, bj),其有各班学生的记录 课程表(4个字段:kch,kcm, js, xf),其有课程的记录; 成绩表(3个字段:xh, kch, cj),其有学生成绩的记录。 学生基本信息表(Student)描述如下: 学生期末成绩表(Grade)描述如下: 学生的课程管理(Course)描述如下: 4.2.3. 面向对象数据库设计方法 1)考虑对象的静态和动态属性 对象属性决定了数据库或包含具有相同类型对象的表的内容。 2)描述数据实体及其属性 包含所有静态属性的单个对象被称作数据实体。每个单独的数据实体必须唯一,这样可以与其他实体区分。包含在数据实体的对象的性质被称作为属性。(attribute) 3)用方法来说明对象的行为 关系数据库对象的行为决定了数据对象参与事务的特征。事务的发生对应着事件,通过使用响应事件的方法来实现事务。 4)在单个表合并不同实体 可以在单个表包含不同对象类型的说明,只要可以按照相同方式描述属性和行为,以及区分不同对象类型即可。
      课程设计题目    学生成绩管理系统 课程设计的目的   理解面向对象的软件设计基本理论,学习VB软件设计的基本方法,熟悉一般软件项目开发的基本步骤,培养运用VB解决实际问题的能力和技巧。 课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求等) 四、工作进度安排 2011-2012学年第19周。 五、主要参考文献 Visual Basic程序设计教程 审核批准意见                                           系主任(签字)    年  月  日     指导教师评语及成绩 指 导 教 师 评 语                           成 绩                                    导师签字: 年 月 日                    设计思路及其创建过程    一、任务概述     简易学生成绩管理系统主要完成学生成绩的管理,包括:    1)、添加信息模块:主要完成学生记录、课程记录、学生成绩和用户记录添加工作。    2)、删除信息模块:主要完成学生记录、课程记录、学生成绩和用户记录的删除工作。    3)、修改成绩模块:主要完成学生成绩的修改工作。    4)、查询模块:主要完成学生成绩的查询工作。    1.进行数据库设计     要编写一个实用的数据库程序,必须系统地学习过数据库原理的知识,并首先设计出符合用户业务需求的数据库体系,然后才能利用某种语言,开发出针对这个数据库的交互程序:数据库应用程序。    2. 程序的主要功能    利用SQL语句完成对学生成绩表的插入、修改、删除和查询操作。比如:    (1)插入记录:    Insert Into 学生成绩表(学号,课程号,成绩)    Values(‘001’,’001’,85)    (2)删除记录    Delete From 学生成绩表    Where 学号=‘001’ And 课程号=‘001’    (3)修改记录    Update 学生成绩表 set 成绩 =90    Where 学号=‘001’ And 课程号=‘001’    (4)按学号查询    Select * From 学生成绩表 Where 学号=‘001’    二、界面设计    1.创建工程    新建一“标准EXE”工程.工程名为“成绩查询”.    2.创建主窗体(frmMain)-MDI主窗体    设计菜单:    增加 删除 修改 查询 退出    增加学生记录 删除学生记录 修改成绩    增加课程记录 删除课程记录    增加成绩 删除成绩记录    增加用户 删除用户 3.创建新增学生记录窗体(frmAddStudent)-MDI子窗体 4、建新增课程记录窗体(frmAddCourse)-MDI子窗体 5.创建新增成绩记录窗体(frmAddGrade)-MDI子窗体 6.创建新增用户记录窗体(frmAddUser)-MDI子窗体 7. 创建修改记录窗体( frmUpdate )-MDI子窗体 8.创建删除学生记录窗体(frmDeleteStudent)-MDI子窗体 9.创建删除课程记录窗体(frmDeleteCourse)-MDI子窗体 10.创建删除成绩记录窗体(frmDeleteGrade)-MDI子窗体 11.创建删除用户窗体(frmDelete)-MDI子窗体 12.创建查询记录窗体(frmQuery)-MDI子窗体 13.创建身份验证窗体-MDI子窗体 1.3 代码设计 1. 连接数据库代码 步骤: (1)通过“工程—引用”菜单添加对象库: Microsoft Activex Data Objects 2.7 Library (Ado数据对象)。 (2)通过工程菜单添加一个标准模块(Module),并设计代码。 (3) 通过“工程—工程1属性”菜单,将主窗体(frmMain)MDIform1设置为启动对象。 添加标准模块代码: '声明全局对象变量ABOcn,用于创建于数据库的连接 Public ADOcn As New ADODB.Connection 添加主窗体初始化过程代码: Private Sub MDIForm_Initialize() ADOcn.ConnectionString = "Provider=SQLOLEDB.1;Password=;User ID=sa;Initial Catalog=成绩;Data Source= localhost;" If ADOcn.State = adStateClosed Then ADOcn.Open '打开到数据库的连接 End Sub 完成本项工作后,就创建了一个全局变量ADOcn,但它是一个特殊的变量,其数据类型是数据连接对象(Connection对象)。可以把ADDcn理解成是一个虚拟的数据库。或者称为VB程序的逻辑数据库,通过它可以非常方便地访问其的数据。换句话说,ADOcn是VB程序的后台数据库交互的通道。 2.设置窗体间的调用关系 2.设置窗体间的调用关系 ’调用增加课程窗体 Private Sub AddCourse_Click(Index As Integer) frmAddCourse.Show End Sub ’调用增加成绩窗体 Private Sub AddGrade_Click(Index As Integer) FrmAdd.Show End Sub ’调用增加学生窗体 Private Sub AddStudent_Click(Index As Integer) FrmAddStudent.Show End Sub ’调用增加用户窗体 Private Sub AddUser_Click() FrmAddUser.Show End Sub ’调用删除课程窗体 Private Sub DeleteCourse_Click() frmDeleteCourse.Show End Sub ’调用删除成绩窗体 Private Sub DeleteGrade_Click() frmDelete.Show End Sub ’调用删除学生窗体 Private Sub DeleteStudent_Click() frmDeleteStudent.Show End Sub ’调用删除用户窗体 Private Sub DeleteUser_Click() frmDeleteUser.Show End Sub ’调用学生基本信息查询窗体 Private Sub Querystudent_Click() frmQuerystudent.Show End Sub ’调用学生成绩查询窗体 Private Sub QueryGrade_Click() frmQueryGrade.Show End Sub’调用修改成绩窗体 Private Sub Update_Click() FrmUpdate.Show End Sub 调用退出程序 Private Sub Exit_Click() End End Sub 3.frmAddStudent (增加学生)窗体的代码设计: Private Sub Command1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 Dim strSQL As String ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 If Text1.Text = "" Then MsgBox "未输入学号,请重新输入数据!", vbCritical + vbOKOnly Text1.SetFocus '定位光标 Exit Sub End If If Text2.Text = "" Then MsgBox "未输入姓名,请重新输入数据!", vbCritical + vbOKOnly Text2.SetFocus '定位光标 Exit Sub End If '首先查询表是否存在关键字相同的记录 strSQL = "select * from 学生情况表" strSQL = strSQL & " Where 学号='" + Text1.Text + " '" strSQL = strSQL & " and 姓名='" + Text2.Text + "'" ADOrs.Open strSQL '如果关键字重复,则退出 If Not ADOrs.EOF Then MsgBox "该记录已经存在,不能继续增加", vbCritical + vbOKOnly Exit Sub End If '拼写Insert插入语句 strSQL = "Insert Into 学生情况表(学号,姓名)" strSQL = strSQL + " Values('" + Text1.Text + "'," strSQL = strSQL + "'" + Text2.Text + "'" + ")" ADOcn.Execute strSQL '执行Insert语句 Text1.Text = "“ '初始化文本框控件 Text2.Text = "" Text1.SetFocus '定位光标 MsgBox "已成功添加记录", vbQuestion + vbOKOnly ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub Private Sub Command2_Click() Unload Me End Sub 4.frmAddCourse (增加课程)窗体的代码设计: (1)在Load事件,进行初始化工作,代码如下: Private Sub Form_Load() '初始化文本框控件 Text1.Text = "" Text2.Text = "" End Sub (2)’Command1_Click()(”确定”按钮)事件代码 Private Sub Command1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 Dim strSQL As String '与ADOcn连接对象关联 ADOrs.ActiveConnection = ADOcn If Text1.Text = "" Then MsgBox "未输入课程号,请重新输入数据!", vbCritical + vbOKOnly Text1.SetFocus '定位光标 Exit Sub End If If Text2.Text = "" Then MsgBox "未输入课程名,请重新输入数据!", vbCritical + vbOKOnly Text2.SetFocus '定位光标 Exit Sub End If ’Command1_Click()(”确定”按钮)事件代码 '首先查询表是否存在关键字相同的记录 strSQL = "select * from 课程情况表" strSQL = strSQL & " Where 课程号='" + Text1.Text + " '" strSQL = strSQL & " and 课程名='" + Text2.Text + "'" ADOrs.Open strSQL '如果关键字重复,则退出 If Not ADOrs.EOF Then MsgBox "该记录已经存在,不能继续增加", vbCritical + vbOKOnly Exit Sub End If ’Command1_Click()(”确定”按钮)事件代码 '拼写Insert插入语句 strSQL = "Insert Into 学生情况表(学号,姓名)" strSQL = strSQL + " Values('" + Text1.Text + "'," strSQL = strSQL + "'" + Text2.Text + "'" + ")" ADOcn.Execute strSQL '执行Insert语句 Text1.Text = "“ '初始化文本框控件 Text2.Text = "" Text1.SetFocus '定位光标 MsgBox "已成功添加记录", vbQuestion + vbOKOnly ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (3)’Command2_Click()(”返回”按钮)事件代码 Private Sub Command2_Click() Unload Me End Sub 5.frmAddGrade(增加成绩)窗体的代码设计: (1)在Load事件,进行初始化工作,代码如下: Private Sub Form_Load() Dim ADOrs As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '对Combo1组合框进行初始化 ADOrs.Open "Select 学号 From 学生情况表 Order By 学号" Combo1.Clear Do While Not ADOrs.EOF Combo1.AddItem Trim(ADOrs.Fields("学号")) '添加"学号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 (1)Load事件代码 '对Combo2组合框进行初始化 ADOrs.Open "select 课程号 from 课程情况表 Order By 课程号" Combo2.Clear Do While Not ADOrs.EOF Combo2.AddItem Trim(ADOrs.Fields("课程号")) '添加"课程号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 '初始化文本框控件 Text1.Text = "" Text2.Text = "" Text3.Text = "0" End Sub (2) Combo1_Click 事件代码 Private Sub Combo1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果输入了学号,则把姓名显示在Text1.Text strSQL = "select * from 学生情况表" strSQL = strSQL + " Where 学号='" + Combo1.Text + " '" ADOrs.Open strSQL Text1.Text = ADOrs.Fields("姓名") ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (3) Combo2_Click 事件代码 Private Sub Combo2_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果输入了课程号,则把课程名显示在Text2.text strSQL = "select * from 课程情况表" strSQL = strSQL + " Where 课程号='" + Combo2.Text + " '" ADOrs.Open strSQL Text2.Text = ADOrs.Fields("课程名") ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (4) Command1_Click(确认) 事件代码 Private Sub Command1_Click() Dim strSQL As String Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '检查学号与课程号是否输入 If Combo1.Text = "" Or Combo2.Text = "" Then MsgBox "输入数据不全,请重新输入数据!", vbCritical + vbOKOnly Exit Sub End If '首先查询表是否存在关键字相同的记录 strSQL = "select * from 学生成绩表" strSQL = strSQL & " Where 学号='" + Combo1.Text + " '" strSQL = strSQL & " and 课程号='" + Combo2.Text + "'" ADOrs.Open strSQL '如果关键字重复,则退出 If Not ADOrs.EOF Then MsgBox "该记录已经存在,不能继续增加", vbCritical + vbOKOnly Exit Sub End If (4) Command1_Click(确认) 事件代码 '拼写Insert插入语句 strSQL = "Insert Into 学生成绩表(学号,课程号,成绩)" strSQL = strSQL + "Values('" + Combo1.Text + "','" strSQL = strSQL + Combo2.Text + "'," + Str(Val(Text3.Text)) + ")" ADOcn.Execute strSQL '执行Insert语句 MsgBox "已成功添加记录", vbQuestion + vbOKOnly '初始化文本框控件 Text1.Text = "" Text2.Text = "" Text3.Text = "0" ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (5) Command2_Click(返回) 事件代码 Private Sub Command2_Click() Unload Me End Sub 6.frmAddUser(增加用户)代码设计 (1)在Load事件,进行初始化工作,代码如下: Private Sub Form_Load() '初始化文本框控件 Text1.Text = "" Text2.Text = "" Text3.Text = "" End Sub (2) Command1_Click(确认) 事件代码 Private Sub Command1_Click() Dim strSQL As String Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '记录已输入的用户信息 UserName = Text1.Text PaasWord = Text2.Text PaasWord1 = Text3.Text '若 Text1.Text 或Text2.Text或Text3.Text为空则提示用户重新输入 If Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Then MsgBox "未输入用户名、密码或密码确认,请重新输入!", vbCritical + vbOKOnly Exit Sub End If '若 两此输入密码不一致则提示用户重新输入 If PaasWord PaasWord1 Then MsgBox "两次输入的密码不一致,请重新输入!", vbCritical + vbOKOnly Text2.Text = "" Text3.Text = "" Text2.SetFocus Exit Sub End If '首先查询用户是否存在相同的记录 strSQL = "Select * From 用户" strSQL = strSQL + " Where 用户名='" + UserName + "'" ADOrs.Open strSQL If Not ADOrs.EOF Then '如果关键字重复,则退出 MsgBox "该用户已经存在,请重新注册", vbCritical + vbOKOnly Exit Sub End If '拼写Insert插入语句 strSQL = "Insert Into 用户(用户名,密码)" strSQL = strSQL + " Values('" + UserName + "','" + PaasWord + "')" ADOcn.Execute strSQL '执行Insert语句 MsgBox "已成功添加记录", vbQuestion + vbOKOnly ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (3) Command2_Click(返回) 事件代码 Private Sub Command2_Click() Unload Me End Sub 7.frmUpdata (修改成绩)窗体代码设计 (1)、在Load事件,进行初始化工作,代码如下: Private Sub Form_Load() Dim ADOrs As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '对Combo1组合框进行初始化 ADOrs.Open "Select 学号 From 学生情况表 Order By 学号" Combo1.Clear Do While Not ADOrs.EOF Combo1.AddItem Trim(ADOrs.Fields("学号")) '添加"学号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 (1)、Form_Load()事件代码 '对Combo2组合框进行初始化 ADOrs.Open "select 课程号 from 课程情况表 Order By 课程号" Combo2.Clear Do While Not ADOrs.EOF Combo2.AddItem Trim(ADOrs.Fields("课程号")) '添加"课程号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 '初始化文本框控件 Text1.Text = "" Text2.Text = "" Text3.Text = "0" End Sub (2) Combo1_Click 事件代码 Private Sub Combo1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果输入了学号,则把姓名显示在Text1.Text strSQL = "select * from 学生情况表" strSQL = strSQL + " Where 学号='" + Combo1.Text + " '" ADOrs.Open strSQL Text1.Text = ADOrs.Fields("姓名") ADOrs.Close '关闭记录集 (2) Combo1_Click 事件代码 If Combo2 "" Then '输入完毕则显示成绩信息 '查询学生成绩表是否有指定指定学号与课程号的记录 strSQL = "select * from 学生成绩表" strSQL = strSQL & " Where 学号='" + Combo1.Text + " '" strSQL = strSQL & " and 课程号='" + Combo2.Text + "'" ADOrs.Open strSQL If ADOrs.EOF Then MsgBox "学生成绩表在不存在学号为" + Combo1.Text + "课程号为" + Combo2.Text + "的记录,请重新输入!", vbCritical + vbOKOnly Text1.Text = "" Text3.Text = "" Exit Sub Else Text3.Text = ADOrs.Fields("成绩") End If End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (3) Combo2_Click 事件代码 Private Sub Combo2_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果输入了课程号,则把课程名显示在Text2.text strSQL = "select * from 课程情况表" strSQL = strSQL + " Where 课程号='" + Combo2.Text + " '" ADOrs.Open strSQL Text2.Text = ADOrs.Fields("课程名") ADOrs.Close '关闭记录集 (3) Combo2_Click 事件代码 If Combo1 "" Then '输入完毕则显示成绩信息 '查询学生成绩表是否有指定指定学号与课程号的记录 strSQL = "select * from 学生成绩表" strSQL = strSQL & " Where 学号='" + Combo1.Text + " '" strSQL = strSQL & " and 课程号='" + Combo2.Text + "'" ADOrs.Open strSQL If ADOrs.EOF Then MsgBox "学生成绩表在不存在学号为" + Combo1.Text + "课程号为" + Combo2.Text + "的记录,请重新输入!", vbCritical + vbOKOnly Text2.Text = "" Text3.Text = "" Exit Sub Else Text3.Text = ADOrs.Fields("成绩") End If End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (4)、 Command1_Click()(修改/确认按钮)事件代码 Private Sub Command1_Click() Dim strSQL As String Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '检查学号与课程号是否输入 If Combo1.Text = "" Or Combo2.Text = "" Then MsgBox "输入数据不全,请重新输入数据!", vbCritical + vbOKOnly Exit Sub End If (4)、 Command1_Click()(修改/确认按钮)事件代码 '根据当前按钮文字的不同进行相关处理 If Command1.Caption = "修改" Then Command1.Caption = "确认" Command2.Caption = "放弃" Else Command1.Caption = "修改" Command2.Caption = "返回" '拼写Update语句,以便进行修改 strSQL = "Update 学生成绩表" strSQL = strSQL + " Set 成绩=" + Text3.Text strSQL = strSQL + " Where 学号='" + Combo1.Text + "'" strSQL = strSQL + " And 课程号='" + Combo2.Text + " '" ADOcn.Execute strSQL '执行Updata语句 MsgBox "修改成功!", vbQuestion + vbOKOnly End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (5) Command2_Click(返回/放弃) 事件代码 Private Sub Command2_Click() If Command2.Caption = "返回" Then Unload Me Else Command2.Caption = "返回" Command1.Caption = "修改" End If End Sub 8.frmDeleteStudent (删除学生)窗体的代码设计 (1)、Form_Load()事件代码 Private Sub Form_Load() Dim ADOrs As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '对Combo1组合框进行初始化 ADOrs.Open "select 学号 from 学生情况表 Order By 学号" Combo1.Clear Do While Not ADOrs.EOF Combo1.AddItem Trim(ADOrs.Fields("学号")) '添加"学号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 '对Combo2组合框进行初始化 ADOrs.Open "select 姓名 from 学生情况表 Order By 学号" Combo2.Clear Do While Not ADOrs.EOF Combo2.AddItem Trim(ADOrs.Fields("姓名")) '添加"姓名"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 End Sub (2) Combo1_Click 事件代码 Private Sub Combo1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '若选择了学号则将姓名自动填写到Combo2.Text ADOrs.Open "Select 姓名 From 学生情况表 Where 学号 ='" + Combo1.Text + "'" If ADOrs.EOF Then MsgBox "学生情况表没有学号为" + Combo1.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Exit Sub Else Combo2.Text = ADOrs.Fields("姓名") End If ADOrs.Close '关闭记录集 End Sub (3) Combo2_Click 事件代码 Private Sub Combo2_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '若选择了姓名则将学号自动填写到Combo1.Text ADOrs.Open "Select 学号 From 学生情况表 Where 姓名 ='" + Combo2.Text + "'" If ADOrs.EOF Then MsgBox "学生情况表没有姓名为" + Combo2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Exit Sub Else Combo1.Text = ADOrs.Fields("学号") End If ADOrs.Close '关闭记录集 End Sub (4)、 Command1_Click()(确定按钮)事件代码 Private Sub Command1_Click() Dim ADOrs As New Recordset '声明记录集对象 Dim ADOrs1 As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 ADOrs1.ActiveConnection = ADOcn '与ADOcn连接对象关联 '若学号和姓名同时为空则提示用户重新输入 If Combo1.Text = "" And Combo2.Text = "" Then MsgBox "学号和姓名不能同时为空,请重新输入!", vbQuestion + vbOKOnly Exit Sub End If (4)、 Command1_Click()(确定按钮)事件代码 '若输入了学号则将姓名自动填写到Combo2.Text If Combo1.Text "" And Combo2.Text = "" Then ADOrs.Open "Select 姓名 From 学生情况表 Where 学号 ='" + Combo1.Text + "'" If ADOrs.EOF Then MsgBox "学生情况表没有学号为" + Combo1.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Exit Sub Else Combo2.Text = ADOrs.Fields("姓名") End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 End If (4)、 Command1_Click()(确定按钮)事件代码 '若输入了号姓名则将学号自动填写到Combo1.Text If Combo2.Text "" And Combo1.Text = "" Then ADOrs1.Open "Select 学号 From 学生情况表 Where 姓名='" + Combo2.Text + "'" If ADOrs1.EOF Then MsgBox "学生情况表没有姓名为" + Combo2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo2.Text = "" Exit Sub Else Combo1.Text = ADOrs1.Fields("学号") End If If ADOrs1.State = adStateOpen Then ADOrs1.Close '关闭记录集 End If '查询学生情况表是否有指定学号和指定姓名的记录 If Combo1.Text "" And Combo2.Text "" Then ADOrs.Open "Select * From 学生情况表 Where 学号='" + Combo1.Text + "'" + " And 姓名='" + Combo2.Text + "'" If ADOrs.EOF Then MsgBox "学生情况表没有学号为" + Combo1.Text + "且姓名为" + Combo2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Combo2.Text = "" Exit Sub Else Combo1.Text = ADOrs.Fields("学号") Combo2.Text = ADOrs.Fields("姓名") End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 End If End Sub (5)、 Command2_Click()(确认按钮)事件代码 Private Sub Command2_Click() Dim xm As String Dim xh As String Dim strSQL As String Dim ADOrs As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果学号与姓名同时为空则提示重新输入/选择 If Combo1.Text = "" Or Combo2.Text = "" Then MsgBox "学号和姓名不能为空,请重新输入!", vbQuestion + vbOKOnly Else xh = Combo1.Text xm = Combo2.Text If MsgBox("删除学号为" + xh + "姓名为" + xm + "的学生记录,该学生在学生成绩表的全部记录也将一起删除,是否继续?", vbQuestion + vbYesNo) = vbYes Then '拼写Delete学生成绩表指定记录语句 strSQL = "Delete From 学生成绩表" strSQL = strSQL + " Where 学号='" + Combo1.Text + "'" ADOcn.Execute strSQL '执行Delete语句 '拼写Delete学生情况表指定记录语句 strSQL = "Delete From 学生情况表" strSQL = strSQL + " Where 学号='" + Combo1.Text + "'" ADOcn.Execute strSQL '执行Delete语句 MsgBox "删除成功!", vbQuestion + vbOKOnly Combo1.Text = "" Combo2.Text = "" End If End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 End Sub (6)、 Command3_Click()(返回按钮)事件代码 Private Sub Command3_Click() Unload Me End Sub 9. frmDeleteCourse(删除课程)窗体代码设计 (1)、Form_Load()事件代码 Private Sub Form_Load() Dim ADOrs As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '对Combo1组合框进行初始化 ADOrs.Open "select 课程号 from 课程情况表 Order By 课程号" Combo1.Clear Do While Not ADOrs.EOF Combo1.AddItem Trim(ADOrs.Fields("课程号")) '添加"课程号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 '对Combo2组合框进行初始化 ADOrs.Open "select 课程名 from 课程情况表 Order By 课程号" Combo2.Clear Do While Not ADOrs.EOF Combo2.AddItem Trim(ADOrs.Fields("课程名")) '添加"课程名"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 End Sub (2) Combo1_Click 事件代码 Private Sub Combo1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '若选择了课程号则将课程名自动填写到Combo2.Text ADOrs.Open "Select 课程名 From 课程情况表 Where 课程号 ='" + Combo1.Text + "'" If ADOrs.EOF Then MsgBox "课程情况表没有课程号为" + Combo1.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Exit Sub Else Combo2.Text = ADOrs.Fields("课程名") End If ADOrs.Close '关闭记录集 End Sub (3) Combo2_Click 事件代码 Private Sub Combo2_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '若选择了课程名则将课程号自动填写到Combo1.Text ADOrs.Open "Select 课程号 From 课程情况表 Where 课程名 ='" + Combo2.Text + "'" If ADOrs.EOF Then MsgBox "课程情况表没有课程名为" + Combo2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Exit Sub Else Combo1.Text = ADOrs.Fields("课程号") End If ADOrs.Close '关闭记录集 End Sub (4)、 Command1_Click()(确定按钮)事件代码 Private Sub Command1_Click() Dim ADOrs As New Recordset '声明记录集对象 Dim ADOrs1 As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 ADOrs1.ActiveConnection = ADOcn '与ADOcn连接对象关联 '若课程号和课程名同时为空则提示用户重新输入 If Combo1.Text = "" And Combo2.Text = "" Then MsgBox "课程号和课程名不能同时为空,请重新输入!", vbQuestion + vbOKOnly Exit Sub End If (4)、 Command1_Click()(确定按钮)事件代码 '若输入了课程号则将课程名自动填写到Combo2.Text If Combo1.Text "" And Combo2.Text = "" Then ADOrs.Open "Select 课程名 From 课程情况表 Where 课程号 ='" + Combo1.Text + "'" If ADOrs.EOF Then MsgBox "课程情况表没有课程号为" + Combo1.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Exit Sub Else Combo2.Text = ADOrs.Fields("课程名") End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 End If (4)、 Command1_Click()(确定按钮)事件代码 '若输入了课程名则将课程号自动填写到Combo1.Text If Combo2.Text "" And Combo1.Text = "" Then ADOrs1.Open "Select 课程号 From 课程情况表 Where 课程名='" + Combo2.Text + "'" If ADOrs1.EOF Then MsgBox "课程情况表没有课程名为" + Combo2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo2.Text = "" Exit Sub Else Combo1.Text = ADOrs1.Fields("课程号") End If If ADOrs1.State = adStateOpen Then ADOrs1.Close '关闭记录集 End If (4)、 Command1_Click()(确定按钮)事件代码 '查询课程情况表是否有指定课程号和指定课程名的记录 If Combo1.Text "" And Combo2.Text "" Then ADOrs.Open "Select * From 课程情况表 Where 课程号='" + Combo1.Text + "'" + " And 课程名='" + Combo2.Text + "'" If ADOrs.EOF Then MsgBox "课程情况表没有课程号为" + Combo1.Text + "且课程名为" + Combo2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Combo2.Text = "" Exit Sub Else Combo1.Text = ADOrs.Fields("课程号") Combo2.Text = ADOrs.Fields("课程名") End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 End If End Sub (5)、 Command2_Click()(确认按钮)事件代码 Private Sub Command2_Click() Dim xm As String Dim xh As String Dim strSQL As String Dim ADOrs As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果课程号与课程名同时为空则提示重新输入/选择 If Combo1.Text = "" Or Combo2.Text = "" Then MsgBox "课程号和课程名不能为空,请重新输入!", vbQuestion + vbOKOnly Else xh = Combo1.Text xm = Combo2.Text If MsgBox("删除课程号为" + xh + "课程名为" + xm + "的课程记录,该课程在学生成绩表的全部记录也将一起删除,是否继续?", vbQuestion + vbYesNo) = vbYes Then (5)、 Command2_Click()(确认按钮)事件代码 '拼写Delete学生成绩表指定记录语句 strSQL = "Delete From 学生成绩表" strSQL = strSQL + " Where 课程号='" + Combo1.Text + "'" ADOcn.Execute strSQL '执行Delete语句 '拼写Delete课程情况表指定记录语句 strSQL = "Delete From 课程情况表" strSQL = strSQL + " Where 课程号='" + Combo1.Text + "'" ADOcn.Execute strSQL '执行Delete语句 MsgBox "删除成功!", vbQuestion + vbOKOnly Combo1.Text = "" Combo2.Text = "" End If End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 End Sub (6)、 Command3_Click()(返回按钮)事件代码 Private Sub Command3_Click() Unload Me End Sub 10. frmDeleteGrade (删除成绩)窗体代码设计 (1)、Form_Load()事件代码 Private Sub Form_Load() Dim ADOrs As New Recordset '声明记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '对Combo1组合框进行初始化 ADOrs.Open "Select 学号 From 学生情况表 Order By 学号" Combo1.Clear Do While Not ADOrs.EOF Combo1.AddItem Trim(ADOrs.Fields("学号")) '添加"学号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 '对Combo2组合框进行初始化 ADOrs.Open "select 课程号 from 课程情况表 Order By 课程号" Combo2.Clear Do While Not ADOrs.EOF Combo2.AddItem Trim(ADOrs.Fields("课程号")) '添加"课程号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集 'End Sub (2) Combo1_Click 事件代码 Private Sub Combo1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果输入了学号,则把姓名显示在Text1.Text strSQL = "select * from 学生情况表" strSQL = strSQL + " Where 学号='" + Combo1.Text + " '" ADOrs.Open strSQL Text1.Text = ADOrs.Fields("姓名") ADOrs.Close '关闭记录集 (2) Combo1_Click 事件代码(续) If Combo2 "" Then '输入完毕则显示成绩信息 '查询学生成绩表是否有指定指定学号与课程号的记录 strSQL = "select * from 学生成绩表" strSQL = strSQL & " Where 学号='" + Combo1.Text + " '" strSQL = strSQL & " and 课程号='" + Combo2.Text + "'" ADOrs.Open strSQL If ADOrs.EOF Then MsgBox "学生成绩表在不存在学号为" + Combo1.Text + "课程号为" + Combo2.Text + "的记录,请重新输入!", vbCritical + vbOKOnly Text1.Text = "" Text3.Text = "" Exit Sub Else Text3.Text = ADOrs.Fields("成绩") End If End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (3) Combo2_Click 事件代码 Private Sub Combo2_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '如果输入了课程号,则把课程名显示在Text2.text strSQL = "select * from 课程情况表" strSQL = strSQL + " Where 课程号='" + Combo2.Text + " '" ADOrs.Open strSQL Text2.Text = ADOrs.Fields("课程名") ADOrs.Close '关闭记录集 (3) Combo2_Click 事件代码(续) If Combo1 "" Then '输入完毕则显示成绩信息 '查询学生成绩表是否有指定指定学号与课程号的记录 strSQL = "select * from 学生成绩表" strSQL = strSQL & " Where 学号='" + Combo1.Text + " '" strSQL = strSQL & " and 课程号='" + Combo2.Text + "'" ADOrs.Open strSQL If ADOrs.EOF Then MsgBox "学生成绩表在不存在学号为" + Combo1.Text + "课程号为" + Combo2.Text + "的记录,请重新输入!", vbCritical + vbOKOnly Text2.Text = "" Text3.Text = "" Exit Sub Else Text3.Text = ADOrs.Fields("成绩") End If End If If ADOrs.State = adStateOpen Then ADOrs.Close '关闭记录集 Set ADOrs = Nothing End Sub (4)、 Command1_Click()(确定按钮)事件代码 Private Sub Command1_Click() Dim strSQL As String Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 Dim ADOrs1 As New Recordset '声明一个记录集对象 ADOrs1.ActiveConnection = ADOcn '与ADOcn连接对象关联 Dim ADOrs2 As New Recordset '声明一个记录集对象 ADOrs2.ActiveConnection = ADOcn '与ADOcn连接对象关联 ‘如果学号为空则提示用户重新输入 If Combo1.Text = "" Then MsgBox "学号不能为空,请重新输入!", vbQuestion + vbOKOnly Combo1.Text = "" Text1.Text = "" Exit Sub End If (4)、 Command1_Click()(确定按钮)事件代码---续 '如果课程号为空则提示拥护重新输入 If Combo2.Text = "" Then MsgBox "课程号不能为空,请重新输入!", vbQuestion + vbOKOnly Combo2.Text = "" Text2.Text = "" Exit Sub End If '查询学生情况表是否有指定学号的记录 If Combo1.Text "" Then ADOrs1.Open "Select 姓名 From 学生情况表 Where 学号='" + Combo1.Text + "'" If ADOrs1.EOF Then MsgBox “学生情况表没有学号为” + Combo1.Text + “的记录,请重新输入!”, vbQuestion + vbOKOnly Combo1.Text = "" Text1.Text = "" Exit Sub Else '若有指定学号的学生记录,则将姓名字段值填写到text1 Text1.Text = ADOrs1.Fields("姓名") End If End If '查询课程情况表是否有指定课程号的记录 If Combo2.Text "" Then ADOrs2.Open "Select 课程名 From 课程情况表 Where 课程号='" + Combo2.Text + "'" If ADOrs2.EOF Then MsgBox "课程情况表没有课程号为" + Combo2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Combo2.Text = "" Text2.Text = "" Exit Sub Else '若有指定课程号的课程记录,则将课程名字段值填写到text2 Text2.Text = ADOrs2.Fields("课程名") End If End If '查询学生表是否有指定学号与课程号的记录 If Combo1 "" And Combo1 "" Then strSQL = "select * from 学生成绩表" strSQL = strSQL & " Where 学号='" + Combo1.Text + " '" strSQL = strSQL & " and 课程号='" + Combo2.Text + "'" ADOrs.Open strSQL If ADOrs.EOF Then MsgBox "学生成绩表在不存在学号为" + Combo1.Text + "课程号为" + Combo2.Text + "的记录,请重新输入!", vbCritical + vbOKOnly Combo1.Text = "" Combo2.Text = "" Text1.Text = "" Text2.Text = "" Text3.Text = "" Exit Sub Else Text3.Text = Val(ADOrs.Fields("成绩")) End If End If End Sub 5)、 Command2_Click()(确认按钮)事件代码 Private Sub Command2_Click() If MsgBox("是否要删除学号为" + Combo1.Text + "课程号为" + Combo2.Text + "的成绩记录?", vbQuestion + vbYesNo) = vbYes Then '拼写Delete语句 strSQL = "Delete From 学生成绩表" strSQL = strSQL + " Where 学号='" + Combo1.Text + "'" strSQL = strSQL + " And 课程号='" + Combo2.Text + "'" ADOcn.Execute strSQL '执行Delete语句 Combo1.Text = "" Combo2.Text = "" Text1.Text = "" Text2.Text = "" Text3.Text = "" MsgBox "删除成功!", vbQuestion + vbOKOnly End If End Sub (6)、 Command3_Click()(返回按钮)事件代码 Private Sub Command3_Click() Unload Me End Sub 11. frmDeleteUser(删除用户)窗体代码设计 (1)、 Command1_Click()(确定按钮)事件代码 Private Sub Command1_Click() '定义变量,建立与数据库的连接 Dim strSQL As String Dim ADOrs2 As New Recordset ADOrs2.ActiveConnection = ADOcn If Trim(Text1.Text) = "" Then MsgBox "请输入用户名!", , "删除用户" Text1.SetFocus Exit Sub End If If Trim(Text2.Text) = "" Then MsgBox "请输入用户密码!", , "删除用户" Text2.SetFocus Exit Sub End If '查询是否有指定用户名和密码的记录 ADOrs2.Open "Select * From 用户 Where 用户名='" + Text1.Text + "'" + " And 密码='" + Text2.Text + "'" If ADOrs2.EOF Then MsgBox "用户没有名为:" + Text1.Text + " 密码为:" + Text2.Text + "的记录,请重新输入!", vbQuestion + vbOKOnly Text1.Text = "" Text2.Text = "" Text1.SetFocus Else If MsgBox("是否删除用户名为“" + Text1.Text + "”密码为“" + Text2.Text + "”的用户记录?", vbQuestion + vbYesNo) = vbYes Then '拼写Delete用户指定记录语句 strSQL = "Delete From 用户 Where 用户名='" + Text1.Text + "'" + " And 密码='" + Text2.Text + "'" ADOcn.Execute strSQL '执行Delete语句 MsgBox "删除成功!", vbQuestion + vbOKOnly Text1.Text = "" Text2.Text = "" Text1.SetFocus End If End If End Sub (2)、 Command2_Click()(返回按钮)事件代码 Private Sub Command2_Click() Unload Me End Sub 12. frmQuerystudent(学生基本信息查询)窗体代码设计 使用ado数据控件与DataGrid数据绑定控件实现 (1)、Form_Load()事件代码 Private Sub Form_Load() Combo1.Text = "全部学生" '默认查询全部学生 Label2.Caption = "全部学生数据浏览表格:" Label1.Visible = False Text1.Visible = False End Sub 说明:这里使用ado数据控件adodc1与DataGrid数据绑定控件DataGrid1,并已设置好adodc属性---查询数据库的表格(学生情况表)。 (2) Combo1_Click 事件代码 Private Sub Combo1_Click() Select Case Combo1.ListIndex '根据选择的组合框项进行处理 Case 0 '选择“全部学生”时隐藏提示信息 strSQL = "select * from 学生情况表" Adodc1.CommandType = adCmdText Adodc1.RecordSource = strSQL Adodc1.Refresh Label2.Caption = "全部学生数据浏览表格:“ DataGrid1.Visible = True Label1.Visible = False Text1.Visible = False Case 1 '选择“按学号查询”时给出提示并定位光标 Label1.Visible = True Text1.Visible = True Text1.SetFocus Label1.Caption = "请输入学号并按回车键确认:" Case 2 '选择“按姓名查询”时给出提示并定位光标 Label1.Visible = True Text1.Visible = True Text1.SetFocus Label1.Caption = "请输入姓名并按回车键确认:" End Select End Sub (3) Text1_KeyPress 事件代码 Private Sub Text1_KeyPress(KeyAscii As Integer) Dim atrsql As String If KeyAscii = 13 Then Select Case Combo1.ListIndex '根据选择的组合框项进行处理 Case 1 '选择“按学号查询”时 strSQL = "select * from 学生情况表 where 学号='" & Trim(Text1.Text) & "'" Adodc1.CommandType = adCmdText Adodc1.RecordSource = strSQL Adodc1.Refresh If Adodc1.Recordset.EOF Then '没有找到时 Label2.Caption = "" DataGrid1.Visible = False MsgBox "没有该生记录信息,请检查你输入的学号是否正确!" Else '找到时 Label2.Caption = "学号为" & Text1.Text & "的学生数据浏览表格:" DataGrid1.Visible = True End If Text1.Text = "" Case 2 '选择“按姓名查询”时 strSQL = "select * from 学生情况表 where 姓名='" & Trim(Text1.Text) & "'" Adodc1.CommandType = adCmdText Adodc1.RecordSource = strSQL Adodc1.Refresh If Adodc1.Recordset.EOF Then '没有找到时 Label2.Caption = "" DataGrid1.Visible = False MsgBox "没有该生记录信息,请检查你输入的姓名是否正确!" Else '找到时 Label2.Caption = "姓名为" & Text1.Text & "的学生数据浏览表格:" DataGrid1.Visible = True End If Text1.Text = "" End Select End If End Sub (4) Command1_Click(返回按钮)事件代码 Private Sub Command1_Click() Unload Me End Sub 13. frmQueryGrade(学生成绩查询)窗体代码设计 使用MSFlexGrid1控件(编程模型)实现 (1)、Form_Load()事件代码 Private Sub Form_Load() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 MSFlexGrid1.Visible = False '隐藏MSFlexGrid1控件 '对Combo1组合框进行初始化 ADOrs.Open "select 学号 from 学生情况表 Order By 学号" Combo1.Clear Do While Not ADOrs.EOF Combo1.AddItem Trim(ADOrs.Fields("学号")) '添加"学号"字段值 ADOrs.MoveNext '取下一条记录 Loop ADOrs.Close '关闭记录集对象 Text1.Text = "" End Sub (2) Combo1_Click 事件代码 Private Sub Combo1_Click() Dim ADOrs As New Recordset '声明一个记录集对象 ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 '若选择了学号则将姓名自动填写到text1 ADOrs.Open "Select 姓名 From 学生情况表 Where 学号 ='" & Combo1.Text & "'" If ADOrs.EOF Then MsgBox "学生情况表没有学号为" & Combo1.Text & "的记录,请重新输入!", vbQuestion & vbOKOnly Text1.Text = "" Else Text1.Text = ADOrs.Fields("姓名") End If ADOrs.Close '关闭记录集 End Sub (3) Command1_Click(确定按钮)事件代码 Private Sub Command1_Click() Dim strSQL As String, strSQL2 As String Dim strRecord As String Dim ADOrs As New Recordset '声明记录集对象 Dim ADOrs2 As New Recordset ADOrs.ActiveConnection = ADOcn '与ADOcn连接对象关联 ADOrs2.ActiveConnection = ADOcn strSQL = "select * from 学生情况表 Where 学号='" & Combo1.Text & " '" ADOrs.Open strSQL If ADOrs.EOF Then MsgBox ("数据库找不到学号为" & Combo1.Text & "的记录,请重新输入!") Combo1.Text = "" Text1.Text = "" Else Text1.Text = ADOrs.Fields("姓名") End If '拼写Select语句 strSQL2 = "Select 学生成绩表.学号,学生成绩表.课程号,学生成绩表.成绩," strSQL2 = strSQL2 & "学生情况表.姓名,课程情况表.课程名" strSQL2 = strSQL2 & " From 学生成绩表,学生情况表,课程情况表" strSQL2 = strSQL2 & " Where 学生成绩表.学号=学生情况表.学号" strSQL2 = strSQL2 & " And 学生成绩表.课程号=课程情况表.课程号" strSQL2 = strSQL2 & " And 学生成绩表.学号= '" & Combo1.Text & "'" ADOrs2.Open strSQL2 '执行Select语句 If ADOrs2.EOF = True Then MSFlexGrid1.Visible = False '隐藏MSFlexGrid1控件 MsgBox "没有该生成绩!" Else '初始化MSFlexGrid表格 MSFlexGrid1.Rows = 0 '行数 MSFlexGrid1.Cols = 5 '列数 MSFlexGrid1.ColWidth(3) = 1500 '调节第4列宽度 MSFlexGrid1.Visible = True '显示MSFlexGrid1控件 '设置表格标题栏 strRecord = "学号" & vbTab & "姓名" & vbTab & "课程号" strRecord = strRecord & vbTab & "课程名" & vbTab & "成绩" MSFlexGrid1.AddItem strRecord '从第一条记录开始循环,直至表尾,填写表格内容 Do While Not ADOrs2.EOF '拼写表格内容 strRecord = Trim(ADOrs2.Fields("学号")) & vbTab & Trim(ADOrs2.Fields("姓名")) & vbTab strRecord = strRecord & Trim(ADOrs2.Fields("课程号")) & vbTab & Trim(ADOrs2.Fields("课程名")) strRecord = strRecord & vbTab & Trim(Str(ADOrs2.Fields("成绩"))) MSFlexGrid1.AddItem strRecord '向表格内添加行 ADOrs2.MoveNext '取下一条记录 Loop End If ADOrs.Close '关闭记录集对象 ADOrs2.Close '释放记录集对象 Set ADOrs = Nothing Set ADOrs2 = Nothing End Sub (4) Command2_Click(返回按钮)事件代码 Private Sub Command2_Click() Unload Me End Sub 14.身份验证窗体(frmlogin)代码设计 1)、Form_Initialize()事件代码 Private Sub Form_Initialize() ADOcn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=成绩.MDB" If ADOcn.State = adStateClosed Then ADOcn.Open '打开到数据库的连接 End Sub 2)、Command1_Click()事件代码—登录按钮 Private Sub Command1_Click() Dim ADOrs As New Recordset '声明记录集对象 Dim strSQL As String ADOrs.ActiveConnection = ADOcn '与连接对象adocn关联 If Trim(Text1.Text) = "" Or Trim(Text2.Text) = "" Then '检验用户名与密码为空否 MsgBox "帐号和密码不能为空,请重新填写", vbOKOnly + vbInformation Exit Sub End If strSQL = "select * from 用户 where 用户名='" + Trim(Text1.Text) + "'" ADOrs.Open strSQL '按用户名查询 If ADOrs.EOF Then '找不到该用户 MsgBox "用户不存在", vbCritical + vbOKOnly Text1.Text = "" Text1.SetFocus Exit Sub ElseIf Trim(Text2.Text) ADOrs.Fields(“密码”) Then ‘找到用户后检验密码 MsgBox "密码不正确", vbOKOnly + vbInformation Text2.Text = "" Text2.SetFocus Exit Sub End If '用户登录成功,记录用户类型参数 usertype = ADOrs.Fields("用户类型") Unload Me MDIForm1.Show '登录成功,打开MDI主窗体 ADOrs.Close Set ADOrs = Nothing End Sub 3)、Command2_Click()事件代码—退出按钮 Private Sub Command2_Click() ADOcn.Close Set ADOcn = Nothing Unload Me End Sub 4)、登录成功并打开MDI主窗体后,应根据人员类型设置菜单权限 Private Sub MDIForm_Load() '根据人员类型设置菜单权限 Select Case usertype 'Case "管理员" Case "查询人员" addmenu.Enabled = False deletemenu.Enabled = False Updata.Enabled = False End Select End Sub 1.4 其他 一、用户自定义函数的使用 1、初始化窗体大小及显示座标函数 Public Sub init(frmname As Object, X As Integer, Y As Integer) frmname.Width = X frmname.Height = Y frmname.Left = (MDIForm1.Width - frmname.Width) / 2 frmname.Top = (MDIForm1.Height - frmname.Height) / 2 End Sub 2、校验输入的文本框字符是否为数字或backspace回格键函数 ,’如果是则返回true,否则返回false Public Function in_int(KeyAscii As Integer) As Boolean Dim Accept_int(10) As String '可接受的字符数组 Accept_int(0) = "0" Accept_int(1) = "1" Accept_int(2) = "2" Accept_int(3) = "3" Accept_int(4) = "4" Accept_int(5) = "5" Accept_int(6) = "6" Accept_int(7) = "7" Accept_int(8) = "8" Accept_int(9) = "9" Accept_int(10) = Chr(8) 'Chr(8)是backspace键对应的字符 in_int = False For i = 1 To 10 '检查输入的字符是否在数组 If Chr(KeyAscii) = Accept_int(i) Then in_int = True End If Next i End Function

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧