




已阅读5页,还剩108页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章 菜单程序设计 主要内容 9 1菜单的组成9 2VisualBasic的菜单9 3菜单编辑器9 4建立菜单9 5应用菜单的有效属性与复选属性9 6动态增减菜单项9 7弹出式菜单9 8思考题 9 1 1菜单栏9 1 2菜单9 1 3菜单项9 1 4菜单的快速访问键与快捷键 9 1菜单的组成 菜单栏位于应用程序窗口上部 标题栏的下面 包含多个下拉式菜单 位于菜单栏的各个下拉式菜单也被称为主菜单 9 1 1菜单栏 菜单是菜单栏内排列的各个下拉式菜单 也被称为主菜单或一级菜单 例如画图程序的菜单栏内共包含了 文件 菜单 编辑 菜单 查看 菜单 图像 菜单 颜色 菜单和 帮助 菜单 应用程序的主菜单分类列出了程序的各个功能 9 1 2菜单 9 1 2菜单 菜单项是菜单列表内列出的各个条目 多数菜单项代表一个相关的命令 用户用鼠标单击菜单项将执行该命令 这样的菜单项也被称为菜单命令 9 1 3菜单项 1 快速访问键大多数菜单或菜单列表内的菜单项都带有一个快速访问键 快速访问键由一个字母表示 通常显示在菜单 菜单项文本右面的括号里 通过快速访问键 应用程序用户可以通过键盘来打开各个菜单 或执行菜单列表的菜单命令 使用主菜单上的快速访问键 需要同时按下键盘上的Alt键 如按下Alt V将打开 查看 菜单 在主菜单打开后通过菜单列表内各个菜单项的快速访问键执行菜单命令或展开子菜单时 只需要单击相关的快速访问键即可 如在 查看 菜单打开后单击V键将执行 查看位图 命令 单击Z键将展开 缩放 子菜单 9 1 4菜单的快速访问键与快捷键 2 快捷键为了快速地执行系统的一些常用菜单命令 可以给相应的命令指定一个快捷键 菜单或子菜单没有快捷键 快捷键被列在菜单项文本的右侧 如画图程序里的 查看 工具箱 命令的快捷键是 Ctrl T 通常快捷键由 Ctrl 键加上字母或数字键构成 9 1 4菜单的快速访问键与快捷键 无论是菜单 主菜单和子菜单 还是菜单项 菜单命令 在VisualBasic中都用菜单对象来表示 称为菜单控件 MenuControl VisualBasic开发环境中的菜单编辑器提供了一个集成管理窗体内所有菜单控件的环境 用户可以通过菜单编辑器来建立 修改 删除菜单控件 由菜单编辑器建立的各个菜单控件也将被添加在VisualBasic属性窗口的对象列表内 并可以通过属性窗口设置其属性 9 2VisualBasic的菜单 与其他多数对象不同 菜单对象只响应唯一的单击事件 设计时需要将单击菜单命令执行的程序代码添加到对应菜单控件的单击事件中 通常只对菜单命令添加单击事件 而不对菜单或子菜单添加单击事件过程 9 2VisualBasic的菜单 在VisualBasic开发环境中 单击 工具 菜单编辑器 命令打开VisualBasic菜单编辑器 菜单编辑器内包含了菜单控件 MenuControl 列表框 菜单控件控制命令按钮 菜单控件的属性选项三部分 菜单控件 MenuControl 列表框列出了当前窗体的所有菜单控件 菜单控件的属性选项区域用来显示与设置当前选中菜单控件的属性 菜单控件控制命令按钮用来添加 删除菜单控件或移动菜单控件的位置 9 3菜单编辑器 9 3菜单编辑器 9 3 1菜单控件列表框9 3 2菜单控件控制命令9 3 3菜单控件的属性 9 3菜单编辑器 位于菜单编辑器下部的菜单控件列表框列出了当前窗体所有的菜单控件 选择其中一个菜单控件 位于菜单编辑器上部的属性选项区域显示该菜单对象的属性 用户也可以在此编辑菜单对象的属性 菜单控件在菜单控件列表框中的位置决定了该控件是主菜单 菜单命令 或是子菜单 列表框内与列表框中左侧靠齐的菜单控件作为主菜单 其标题直接显示在菜单栏中 各主菜单下向右缩进的菜单控件将被排列在相应主菜单的菜单列表内 表示主菜单下的菜单项 9 3 1菜单控件列表框 如果一个向右缩进过的菜单控件下面还紧跟着再次缩进的菜单控件 则它是一个子菜单 在子菜单以下缩进的各个菜单控件 就成为该子菜单下的菜单项 VisualBasic一共可以创建四个子菜单等级 以连字符 作为标题的菜单控件 将在菜单列表中作为一个分隔条出现 分隔条可以把菜单项划分成若干个部分 9 3 1菜单控件列表框 在菜单控件列表框的上面是几个菜单控件控制命令 对当前选中的菜单控件执行下面操作 下一个 按钮 将光标移动到下一个菜单控件上 新建菜单时 通过单击 下一个 按钮 将光标移动到菜单控件下面的空白处 此时输入标题与名称将新建一个菜单控件 插入 按钮 在当前菜单控件上面插入一个新的菜单控件 删除 按钮 删除当前选中的菜单控件 上箭头 与 下箭头 按钮 把选定的菜单控件向上或向下移动一个位置 右箭头 与 左箭头 按钮 把选定的菜单控件向右或向左移动一个等级 9 3 2菜单控件控制命令 菜单编辑器的属性选项区域内列出了被选中菜单控件的各个属性 其中各属性的含义如下 标题 Caption 属性 菜单控件的标题 这些标题显示在菜单栏或菜单列表中 标题属性中以 符号开头的字母表示该菜单控件的快速访问键 如果在菜单列表中加入分隔条 只需在菜单控件的标题属性中键入一个连字符 即可 名称 Name 属性 菜单控件的名称 同一窗体内的控件名称不能重复 索引 Index 属性 用来定义菜单控件数组 并指定该菜单控件在控件数组中的位置 对于非控件数组此项保留为空 快捷键 属性 设置菜单命令的快捷键 复选 Checked 属性 在菜单项的左边设置复选标记 通常用它来表示切换选项的开关状态 有效 Enabled 属性 决定菜单 菜单项是否为可用 对于不可用的菜单 菜单项窗体运行时将显示为灰色 并且不响应用户的单击操作 可见 Visible 属性 决定菜单 菜单项是否显示 9 3 3菜单控件的属性 9 4建立菜单 制作菜单之前 用户需要首先设计好窗体的菜单以及各个菜单下的菜单项 在设计菜单时需要注意以下几个问题 菜单应包含与窗体相关的全部操作 菜单命令按实际功能分类 并列在相应的主菜单下 给菜单 菜单项添加适当的快速访问键 给常用的菜单命令添加快捷键 9 5应用菜单的有效属性与复选属性 依据应用程序运行状态的不同 菜单 菜单项并不总是有效的 例如在很多应用程序的 编辑 菜单中 如剪贴板内没有剪切或复制的对象时 粘贴 菜单项是无效的 VisualBasic通过菜单项的Enabled属性来控制菜单项的有效性 9 5应用菜单的有效属性与复选属性 应用程序利用菜单项的复选 Checked 属性来表示应用程序的状态 右图所示的 工具栏 子菜单的菜单列表中的各个菜单项 通过复选属性的设置表示当前显示出的工具栏 菜单控件的有效属性与复选属性既可以在窗体的设计阶段通过菜单编辑器设置 在VisualBasic6开发环境的属性窗口设置 也可以在程序运行中使用语句来改变 有效 Enabled 属性与复选 Checked 属性的值都是逻辑类型 在程序的代码中用True或False对其赋值 9 6动态增减菜单项 VisualBasic动态添加菜单控件是通过加载或卸载菜单控件数组元素来实现的 如 LoadmnuShapeSel i UnloadmnuShapeSel i 9 7弹出式菜单 弹出式菜单独立于菜单栏 以浮动菜单的形式显示在窗体上 在MicrosoftWindows中 可以通过单击鼠标右键来激活上下文菜单 在弹出式菜单上显示的项目取决于按下鼠标右键时指针所处的位置 因此弹出式菜单也被称为上下文菜单 弹出菜单通常列出了对被单击对象的最常用的操作 MicrosoftWindows资源管理器内使用鼠标右键单击文件夹时出现的弹出式菜单 其中罗列了对该文件夹的常用操作 9 7弹出式菜单 弹出式菜单的设计与普通菜单一样 需要在菜单编辑器内添加菜单对象与该菜单列表内的菜单项 一般弹出式菜单控件的可视 Visible 属性设置为False 这样在窗体执行时 菜单栏内不显示该菜单 而在用鼠标右键单击相关对象时弹出该菜单 VisualBasic提供了PopupMenu方法以实现弹出式菜单的操作 其语法格式如下 object PopupMenumenuname flags x y boldcommand其中各部分含义为 object 可选 对象表达式 缺省object对象为当前窗体 menuname 必选 被弹出的菜单控件名 可以是窗体内 菜单编辑器内 的带有下级菜单项列表的菜单或子菜单控件 flags 可选 整数值或常数 用以指定弹出式菜单的位置和行为 用以表示位置的flags值可以与用以表示弹出式菜单项行为的flags值相加 其含义为弹出式菜单的位置与行为的组合 9 7弹出式菜单 boldcommand 可选 用以指定弹出的菜单列表内文本被加粗的菜单项的名字 如省略则被弹出菜单列表内没有文本被加粗的条目 打开弹出式菜单的语句代码一般添加在相关对象的MouseUp或者MouseDown事件中 标准用法是使用MouseUp事件 9 8思考题 在VisualBasic中菜单使用什么对象表示的 如何给窗体添加菜单 在VisualBasic中如何区分菜单与菜单内的菜单项 如何实现动态增减菜单项 试设计一个应用程序 利用菜单命令改变窗体内标签控件文本的字体 字号 颜色 利用弹出式菜单实现思考题4的功能 第10章 对话框程序设计 第10章对话框程序设计 对话框是辅助应用程序输入 输出信息 进行设置等用户与应用程序交互的窗口 与窗体窗口不同 对话框的是应用程序窗口的辅助窗口 其大小通常不可调节 在VisualBasic中对话框分为 消息框 MsgBox 与输入框 InputBox 公共对话框 自定义对话框等 主要内容 10 1消息框与输入框10 2自定义对话框10 3公共对话框10 4思考题 消息框与输入框是VisualBasic为程序开发者提供的预定义对话框 用于在程序运行时显示消息或输入信息 用户不必考虑设计 加载或者显示对话框等方面的问题 只需要简单引用并设置相关参数就可以调用预定义对话框并通过对话框实现应用程序的输出 输入操作 预定义对话框总是模式的 即当对话框显示时 用户不能进入应用程序的其他窗口 10 1消息框与输入框 10 1 1消息框 MsgBox 10 1 2输入框 InputBox 10 1消息框与输入框 消息框 MsgBox 用于显示程序执行过程中的提示消息 消息框以函数的形式调用 返回一个整数值 用来表示消息框关闭时用户的按键信息 消息框函数的语法格式如下 MsgBox prompt buttons title helpfile context 10 1 1消息框 MsgBox 其中各参数说明如下表所示 10 1 1消息框 MsgBox 消息框函数 MsgBox 中的Buttons参数以整数的形式来表示消息框中四组信息 第一组值 0 5 描述了对话框中显示的按钮的类型与数目 第二组值 16 32 48 64 描述了图标的样式 第三组值 0 256 512 说明哪一个是缺省按钮 第四组值 0 4096 则决定消息框的强制返回性 这四组信息可以叠加 等效于进行二进制形式的Or运算 10 1 1消息框 MsgBox 10 1 1消息框 MsgBox 输入框 InputBox 用来向程序中输入数据 输入框以函数的形式调用的 返回的函数值是在输入框内输入的文本 输入框函数的语法格式如下 InputBox prompt title default xpos ypos helpfile context 10 1 2输入框 InputBox 输入框函数中的参数说明 10 1 2输入框 InputBox 自定义对话框是用户创建的作为对话框使用的窗体 这些窗体可以显示应用程序的输出信息 也可以为应用程序接收信息 用户可以自由定义自定义对话框的外观 设计对话框的功能 自定义对话框可以是固定的或可移动的 模式或无模式的 它可以包含不同类型的控件 10 2自定义对话框 10 2 1使用窗体作为对话框10 2 2模式与无模式对话框 10 2自定义对话框 通常用于作为自定义对话框的窗体是临时性的 用户不需要对其进行移动 改变尺寸 最大化或最小化等操作 因此对话框窗体一般不需改变窗体大小 不需要菜单栏 窗口滚动条 最小化与最大化按钮 状态栏等控件 在设计自定义对话框时经常需要设置窗体的下列属性 10 2 1使用窗体作为对话框 自定义对话框在程序执行时用show方法打开 依打开的方式不同 对话框分为模式或无模式两种类型 所谓模式对话框 在其打开时 无法将操作焦点切换到应用程序的其他部分 必须首先关闭对话框 才可以切换到其它窗体 或对话框之前要求先单击 确定 或 取消 则它就是模式的 显示重要消息的对话框通常是模式的 即在继续其他操作之前 需要首先对对话框做出响应 无模式对话框允许在对话框与其他窗体之间转移焦点而不用关闭对话框 当对话框显示时 可以在当前应用程序的其他地方继续工作 这种无模式对话框在实际应用程序中很少使用 10 2 2模式与无模式对话框 大多数应用程序都具有打开和保存文件 选择颜色和字体 打印和打印设置等操作 为了减少程序员的工作 Windows以动态链接库的形式提供了上述操作的统一界面 即公共对话框 使用公共对话框 程序员只需要简单的属性设置与代码编写就可以在程序中调用标准的打开和保存文件对话框 选择颜色和字体对话框 打印和打印设置对话框等已完成相关操作 下图是Windows画图程序的 另存为 对话框 10 3公共对话框 10 3 1公共对话框控件10 3 2 打开 与 另存为 对话框10 3 3 颜色 对话框10 3 4 字体 对话框10 3 5 打印 对话框 10 3公共对话框 VisualBasic通过公共对话框控件 CommonDialogControl 实现公共对话框的功能 公共对话框控件可以调出 打开 另存为 颜色 字体 打印 帮助 等标准对话框 在VisualBasic窗体中使用CommonDialog控件的过程如下 1 在工程中加载AcctiveX控件COMDLG32 OCX2 在需要引用标准对话框的窗体内添加公共对话框对象3 在程序运行中通过公共对话框对象打开标准对话框 10 3 1公共对话框控件 程序中运行时 有两种方式可以调出公共对话框 一种是执行公共对话框对象的方法 一种是设置公共对话框对象的Action属性值 action 10 3 1公共对话框控件 最常用的标准对话框是 打开 与 另存为 对话框 对话框用以指定驱动器 目录 文件名和文件扩展名 通过使用CommonDialog控件对象的ShowOpen和ShowSave方法或Action属性值的设置可显示 打开 和 另存为 对话框 当用户在对话框内选择一个文件后单击 确定 命令按钮关闭对话框时 对话框通过其FileName属性将用户选择的文件名与路径传递给程序 通过给CommonDialog控件的Action属性赋值的方法调用 打开 或 另存为 对话框的形式为 action 1 调用 打开 对话框 action 2 调用 另存为 对话框 10 3 2 打开 与 另存为 对话框 在使用 打开 和 另存为 对话框时 通常需要首先指定对话框的Filter属性 用来指定对话框文件类型内的文件类型列表 给Filter属性赋值语句的格式如下 Filter 类型说明1 扩展名1 类型说明2 扩展名2 其中 类型说明 表示文件列表内各个文件类型的说明文字 如 所有文件 扩展名 用来指定文件类型 如 bmp ico Filter属性是字符型 需要用双引号将整个类型说明引起来 如 所有文件 位图 bmp bmp JPEG图像 jpg jpg GIF图像 gif gif 10 3 2 打开 与 另存为 对话框 通过使用CommonDialog控件对象的ShowColor方法或Action属性值的设置可显示 颜色 对话框 颜色 对话框用以从调色板选择颜色 或是创建和选择自定义颜色 10 3 3 颜色 对话框 使用 颜色 对话框 需要首先设置CommonDialog控件对象中与颜色对话相关的属性 然后使用ShowColor方法或Action属性值的设置显示对话框 运行时 选定颜色并关闭对话框后可用CommonDialog对象的Color属性获取选定的颜色 为了该属性能返回 颜色 对话框中的一种颜色 必须先设置CommonDialog控件对象的cdlCCRGBInit标志以规定颜色的初始值 Flags cdlCCRGBInit 10 3 3 颜色 对话框 字体对话框用于选择文本的字体 字形 字号等效果 VisualBasic使用CommonDialog控件的ShowFont方法或Action属性值 公共对话框对象 Action 4 的设置来显示标准的 字体 对话框 10 3 4 字体 对话框 显示 字体 对话框之前必须将CommonDialog控件的Flags属性设置为下列数值之一 否则将发生不存在字体错误 cdlCFScreenFonts 只显示屏幕字体 cdlCFPrinterFonts 只显示打印机字体 cdlCFBoth 既显示屏幕字体又显示打印机字体 如果需要字体对话框设置字体的删除线 下划线 以及颜色效果 需要设置对话框的下面Flags属性 cdlCFEffects 它指定对话框允许删除线 下划线 以及颜色效果 10 3 4 字体 对话框 字体 对话框通过一组属性来返回给程序用户在对话框内选择的有关字体的信息 10 3 4 字体 对话框 打印 对话框用于确定打印输出的有关设置 用户在对话框内可以指定打印页数范围 打印质量 复制数目等等 此对话框还显示有当前安装的打印机信息 并允许用户进行配置或重新安装新的缺省打印机 10 3 5 打印 对话框 通过使用CommonDialog控件对象的ShowPrinter方法或Action属性值 对话框对象 Action 5 的设置可显示 打印 对话框 在 打印 对话框内可以进行如下有关打印的属性设置 10 3 5 打印 对话框 1 对话框分为哪几种 各有什么特点 如何在VisualBasic中实现这些对话框 2 为了利用窗体制作自定义对话框 需要设置窗体的那些属性 3 什么是模式与无模式对话框 4 试编写程序 利用 打开 对话框给image对象添加图片 5 试编写程序 利用 字体 与 颜色 对话框设置标签的文本属性 10 4思考题 第11章 访问数据库 主要内容 11 1数据库的基本概念11 2使用Data控件访问数据库11 3使用ADO访问数据库11 4使用DAO访问数据库 11 1数据库基本概念 数据库是具有一定组织结构的相关信息的集合 它是将一些相关的数据表组织在一起 通过设置某些功能 使数据表之间建立关系 这样就构成了一个完整数据库 11 1 1数据库概念数据库 DataBase 简称DB 是指具有统一的结构形式并存放在计算机中的存储介质上 有组织的 可共享的数据集合 1 数据库 数据表基本概念数据库的结构形式 即数据之间的联系 称为数据模型 目前最为流行的是关系模型 关系模型是建立在严格的数学理论基础上 采用我们所熟悉的二维表格形式来存储数据 一个关系对应一张数据表 由一组相关的数据组成 表中的每一列称为一个字段 表中的第一行是字段名称 从表的第二行开始 每一行称为一条记录 每条记录含有相同类型和数量的字段 2 数据库管理系统数据库管理系统 DataBaseManagementSystem 简称DBMS 是位于用户与操作系统之间的数据管理软件 3 数据库系统数据库系统 DataBaseSystem 简称DBS 是指在计算机系统中引入数据库后的系统 一个完整的数据库系统是由数据库 数据库管理系统 应用系统 数据库管理员和用户及硬件系统构成 11 1 2数据库和表的建立 例11 1 使用数据管理器建立一个学生管理数据库 建立步骤如下 1 启动数据管理器 选择 外接程序 可视化数据管理器 命令 打开如图所示的数据管理器窗口 2 建立数据库 选择数据管理器窗口中的 文件 新建 MicrosoftAccess Version7 0MDB 命令 在出现的保存数据库对话框中 选择好路径 输入数据库文件名stu mdb后 打开如图所示的窗口 3 建立数据表结构 新建的数据库stu mdb是不含任何数据表的空库 需在该库中添加数据表 方法是在数据库窗口中按鼠标右键 在弹出的快捷菜单中选择 新建表 后 打开图所示的 表结构 对话框 在 表名称 框中输入表名 学生基本信息 单击 添加字段 按钮 打开如下图所示的 添加字段 对话框 在此可以向 学生基本信息 表中添加字段 学生基本信息 表结构 4 编辑数据表中的数据 所建立的 学生基本信息 表 是一个仅有表结构的空表 还需向表中添加数据信息 方法是双击 学生基本信息 表 打开如下图所示的编辑记录窗口 在记录操作对话框中 单击 添加 按钮出现如下图所示的对话框 在其中依次输入 学生基本信息 表中第1条记录的6项字段值后 单击 更新 按钮 即完成一条记录的添加操作 重复以上操作 将表中所包含的8条记录均添加到 学生基本信息 数据表中 11 2用Data控件访问数据库 例11 2 制作一个浏览信息的用户界面 将 例11 1 所建立的数据库中的记录信息显示在6个文本框中 运行结果如图所示 解析 Data数据控件是VB的标准控件 利用它能方便地创建应用程序与数据库之间的连接 并实现对数据资源的访问 为了在程序运行时 使Data数据控件能够访问student表中的记录信息 应设置该控件的DatabaseName属性和RecordSource属性 DatabaseName属性指定具体要访问的数据库文件名 包括所有的路径名 实现Data数据控件与数据库的连接 RecordSource属性指定要访问的数据库中具体的数据表 实现Data数据控件与数据表的连接 要在各文本框中显示Data控件所连接的数据表中的数据 必须将文本框与Data数据控件进行绑定 其方法是 单击用于显示 学号 信息的文本框 在属性窗口设置DataSource属性为Data1 实现与数据控件Data1的绑定 再设置DataField属性为 学号 即绑定到数据表中具体的字段上 同理 设置其他5个文本框的DataSource属性均为Data1 DataField属性分别为姓名 性别 出生日期 入学成绩和系别 注意 需先设置DataSource属性 后设置DataField属性 完成上述步骤后 运行程序时 在6个文本框中将自动显示student表中的第一条记录信息 Data数据控件上有4个按钮 其中图标 分别表示移动到表中第一条记录 最后一条记录 前一条记录 后一条记录 通过这4个按钮 可以浏览表中的不同记录信息 编写代码 PrivateSubForm Load Fori 0To5Text1 i Locked True 设置文本框不可编辑NextiEndSubPrivateSubData1 Reposition Data1 Caption 第 Data1 Recordset AbsolutePosition 1 条记录 EndSub 说明 1 将文本框控件与Data数据控件绑定后 当改变文本框中的数据时 数据库中相应的数据会随之改变 为了控制用户在文本框中编辑数据 在Form Load事件中将文本框的Locked属性设为True 2 当用户单击Data控件上的某个按钮 进行记录间的移动或在程序代码中使用改变当前记录的属性或方法 使某条记录成为当前记录后 会触发Data1的Reposition事件 在该事件中出现的Recordset是Data1控件所控制的记录集对象 通过此对象对数据表中的记录进行浏览和操作 访问数据库的记录集可用Data1 Recordset实现 Recordset对象有多种属性和方法 本例中用到的AbsolutePosition属性表示返回当前指针值 第一条记录的指针值为0 因此语句Data1 Recordset AbsolutePosition 1表示当前记录数 从本例可以看出要用Data控件访问数据库 需要做两件事情 一是将Data控件与数据库中的数据表连接 二是将用于显示数据的控件与Data控件绑定 能与Data数据控件绑定的控件有文本框 标签 图片框 图像框 复选框 列表框 组合框等 例11 3 在 例11 2 所建立的浏览信息窗体基础上增加4个按钮 名称分别为cmdAdd cmdEdit cmdDelete cmdExit 并实现如下功能 单击 添加 按钮后 在数据表中添加一条空记录 同时 添加 按钮和 退出 按钮的标题分别变为 保存 和 取消 在文本框中输入数据后 单击 保存 按钮 将文本框中的数据添加到数据表的相应字段中 单击 取消 按钮 则取消添加记录的操作 回到初始界面 单击 修改 按钮后 可对当前显示的一条记录重新编辑 同时按钮变为 保存 按钮 单击 保存 按钮后 将修改后的记录保存到数据表中 单击 取消 按钮 则取消所做的操作 回到初始界面 单击 删除 按钮后 在弹出的消息框中显示 确实删除该记录吗 单击 是 则删除当前所显示的一条记录 单击 否 则取消这次操作 回到初始界面 单击 退出 按钮 退出程序 a 初始界面 b 添加新记录界面 编写代码 PrivateSubForm Load Fori 0To5Text1 i Locked TrueNextiEndSub PrivateSubcmdAdd Click cmdEdit Enabled NotcmdEdit EnabledcmdDelete Enabled NotcmdDelete EnabledFori 0To5Text1 i Locked NotText1 i LockedNextIIfcmdAdd Caption 添加 ThenData1 Recordset AddNew 添加一条空记录Data1 Caption 新记录 cmdAdd Caption 保存 cmdExit Caption 取消 Text1 0 SetFocusElseData1 Recordset Update 将数据加入到新添加的空记录中Data1 Recordset MoveLast 使记录集中的最后一条记录成为当前记录cmdAdd Caption 添加 EndIfEndSub PrivateSubcmdEdit Click cmdAdd Enabled NotcmdAdd EnabledcmdDelete Enabled NotcmdDelete EnabledFori 0To5Text1 i Locked NotText1 i LockedNextiIfcmdEdit Caption 修改 ThenData1 Recordset Edit 使当前记录成为可编辑状态cmdEdit Caption 保存 cmdExit Caption 取消 ElseData1 Recordset Update 用修改后的数据替换原来的记录cmdEdit Caption 修改 EndIfEndSub PrivateSubcmdDelete Click answer MsgBox 确实删除该记录吗 vbYesNo vbQuestion 警告 Ifanswer vbYesThenData1 Recordset Delete 删除当前记录Data1 Recordset MoveNext 记录指针下移一条IfData1 Recordset EOFThenData1 Recordset MoveLast 使最后一条记录成为当前记录EndIfEndIfEndSub PrivateSubcmdExit Click IfcmdExit Caption 退出 ThenEndElseData1 Recordset CancelUpdate 取消所做的添加 修改记录的操作cmdAdd Enabled TruecmdEdit Enabled TruecmdDelete Enabled TrueFori 0To5Text1 i Locked NotText1 i LockedNexticmdExit Caption 退出 cmdAdd Caption 添加 cmdEdit Caption 修改 Data1 Refresh 刷新记录集中的记录EndIfEndSub PrivateSubData1 Reposition Data1 Caption 第 Data1 Recordset AbsolutePosition 1 条记录 EndSub 说明 1 本例主要的功能是增加 修改 删除数据表中的记录 需要使用Data控件的记录集 Recordset 对象特有的属性和方法 VB使用这些属性和方法对数据库中的记录浏览和操作 Recordset记录集除上例用到的AbsolutePosition属性外 还有BOF和EOF两个常用属性 这两个属性值为True或False 值为True时 表明记录指针已移到数据表中第一条记录之前或最后一条记录之后 否则就是记录指针没有移到那样的位置 Recordset记录集的常用方法有 AddNew方法在记录集的尾部添加一条新的空白记录 Edit方法使记录集中的当前记录进入编辑状态 Delete方法删除记录集中的当前记录 Update方法在调用AddNew方法新添加一条记录或调用Edit方法修改记录后 需要调用Update方法来更新数据库中的数据 CancelUpdate方法取消所做的添加 修改记录的操作 Move方法使用Recordset的MoveFirst MoveLast MovePrevious MoveNext方法可以浏览数据库中的数据 11 3用ADO数据控件访问数据库 例11 5 使用ADOData控件查询数据 运行程序时 在窗体上选择组合框中 全体 信息科学 环境科学 管理 广告 等不同系别后 在DataGrid网格控件中显示与查询条件相匹配的学生信息 程序运行结果如图所示的窗体 建立步骤如下 1 首先在窗体上添加2个标签 1个组合框 并设置标签的Caption属性分别为 各系学生信息 和 选择系别 组合框的List属性为 全体 信息科学 环境科学 管理 和 广告 4个选项 Text属性为 全体 2 添加ADOData控件在 部件 对话框中 选择MicrosoftADODataControl6 0 OLEDB 项 如图所示 将ADO控件添加到工具箱中 再将该控件添加到窗体上 默认的名称为Adodc1 在窗体的ADO控件上按鼠标右键选 ADODC属性 项 打开 属性页 对话框 在属性页的 通用 选项卡中选 使用连接字符串 方式连接数据源 单击其右侧的 生成 按钮 出现 数据链接属性 对话框 在 提供程序 选项卡中选中 MicrosoftJet4 0OLEDBProvider 项 3 添加DataGride数据网格控件DataGride数据网格是一种类似于电子表格形式的数据绑定Active控件 该控件需要与ADO数据控件一起使用 实现对数据库的访问 DataGride控件可以以表格形式显示数据 并具有对记录编辑的功能 在工具箱空白处按鼠标右键 在 部件 对话框中选择MicrosoftDataGridControl6 0 OLEDB 选项 如图所示 编写代码 PrivateSubCombo1 Click WithAdodc1 CommandType adCmdTextIfCombo1 Text 全体 Then RecordSource select from学生基本信息where系别 Combo1 Text Else RecordSource select from学生基本信息 EndIf RefreshEndWithEndSub 例11 6 在 例11 5 基础上增加下列功能 即除了能够按不同系别显示学生信息外 还能统计该系学生总人数 入学成绩平均分 窗体运行结果如图所示 查询全体学生信息及成绩统计 查询信息系学生信息及成绩统计 编写代码 PrivateSubForm Load DimsAsIntegern Adodc1 Recordset RecordCount 获取记录集中的记录总数Fori 0Ton 1s s Adodc1 Recordset Fields 4 累加Adodc1 Recordset MoveNext 将记录指针移向下一条记录NextiLabel4 Caption n 显示人数Label6 Caption Format s n 统计平均分EndSubPrivateSubCombo1 Click WithAdodc1 CommandType adCmdTextIfCombo1 Text 全体 Then RecordSource select from学生基本信息where系别 Combo1 Text Else RecordSource select from学生基本信息 EndIf RefreshEndWithForm LoadEndSub 11 4用ADO数据对象访问数据 ADO对象模型简图如下图所示 它提供了一系列数据对象 使用时 在程序中创建对象变量 通过对象变量来调用访问对象的方法 设置属性等 从而实现对数据库的各种操作 ADO的对象说明 使用ADO对象模型访问数据库一般步骤和方法 1 声明对象变量在代码编写窗口的通用声明段中用Dim语句声明对象变量 同时创建Connection对象和Recordset对象的实例 DimcnAsNewADODB ConnectionDimrsAsNewADODB Recordset 2 用创建的Connection对象实现与数据库的连接 再用创建的Recordset对象打开指定记录集 cn Provider microsoft jet oledb 4 0 cn OpenApp Path rs Open设置cn的Provider属性为microsoft jet oledb 4 0 即设定Connection对象的连接的数据源提供者的名称 Access2000及以上版本的Access数据库 并调用Connection对象的方法Open连接指定数据库 如果操作本地数据库 上述语句也可用 Setcn CurrentProject Connection 一条语句来代替 3 进行数据库访问操作 4 关闭记录集 关闭连接 释放相应的资源rs CloseSetrs Nothingcn Close 11 5小结 数据库技术是当前计算机领域发展最快的技术之一 是计算机应用技术中的重要组成部分 对于大量数据的处理 使用数据库存储管理比通过文件管理数据更有效 本章主要介绍数据库的基本概念 VB中使用Data数据控件 ADO数据控件及ADO数据对象访问数据库的基本方法 第12章 键盘与鼠标事件过程 主要内容 应用程序运行时用户可以通过键盘或鼠标与程序进行交互 控制应用程序的运行 VisualBasic提供了一系列事件过程来响应用户的键盘与鼠标操作 本章向读者展示VisualBasic的键盘 鼠标事件过程 介绍与这些过程相关的知识 并以实例的形式详细讲解键盘 鼠标事件过程的应用 主要内容 12 1键盘与鼠标事件过程12 2KeyPress事件12 3KeyDown事件与KeyUp事件12 4窗体的键盘事件12 5鼠标指针的形状12 6鼠标事件12 7鼠标拖放12 8思考题 一些控件 如文本框 复合框 命令按钮 复选框与窗体等 响应用户的键盘操作 当用户按下按键时 程序捕捉到按键操作 并执行相应的事件过程 在VisualBasic中键盘事件过程包括KeyPress事件 KeyDown事件与KeyUp事件 键盘事件彼此不互相排斥 按下某一按键时触发KeyDown和KeyPress事件 松开按键后触发KeyUp事件 当用户按下一个KeyPress事件不能检测的键时 按键操作只触发KeyDown事件 抬起按键时触发KeyUp事件 12 1键盘与鼠标事件过程 随着图形界面应用程序的普及 鼠标已经是人们计算机操作中使用的最为常用的工具 VisualBasic通过鼠标相关的事件过程来响应用户使用鼠标的操作 如用户单击鼠标 双击鼠标 移动鼠标等 将触发相应的鼠标事件过程 鼠标事件过程包括Click与DblClick事件过程 MouseDown与MouseUp事件过程 MouseMove事件过程 DragDrop与DragOver事件过程等 12 1键盘与鼠标事件过程 当用户在窗体或响应KeyPress事件的对象上按下和松开一个键盘按键时触发具有焦点对象的KeyPress事件过程 并将按键信息传递给过程 KeyPress的语法如下 PrivateSubobject KeyPress keyasciiAsInteger 其中 Object为发生单击事件的对象 Ascii为单击按键对应的Ascii码 12 2KeyPress事件 KeyDown和KeyUp事件提供了最低级的键盘响应 当用户按下或抬起键盘按键时触发具有焦点对象的KeyDown或KeyUp事件过程 其语法如下 PrivateSubobject KeyDown keycodeAsInteger shiftAsInteger PrivateSubobject KeyUp keycodeAsInteger shiftAsInteger 其中 object表示在按键操作时具有焦点的对象 Keycode参数是按键代码 表示按下或抬起的物理键 Shift参数返回一个整数 表示Shift键 Ctrl键和Alt键的状态 Shift参数用二进制001或十进制值1表示键盘事件发生时Shift键被按下 用二进制010或十进制值2表示键盘事件发生时Ctrl键被按下 用二进制100或十进制值4表示键盘事件发生时Alt键被按下 这三个键可以组合 如同时按下Shift Ctrl Alt键 Shift参数值将为7 12 3KeyDown事件与KeyUp事件 注意 KeyCode参数表示按下的物理键 如字母 A 与 a 是同一个按键 因此具有相同的KeyCode值 65 字母键的KeyCode值取相应键的大写字母的Ascii值 与此相区别的是 KeyPress事件将字母的大小写视为两个不同的Ascii码来处理 键盘上的 1 和数字小键盘的 1 作为不同的键 返回不同的KeyCode参数值 尽管它们生成相同的字符 12 3KeyDown事件与KeyUp事件 如果一个窗体上包含可以响应键盘事件的控件 则在满足下面两种情况之一时执行窗体的键盘事件 窗体上所与能响应键盘事件的所有对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年OLED检测系统项目建议书
- 2025年汽车内外饰件合作协议书
- 抢修安全培训课件
- 2025年用户自行开发的专用集成电路(ASIC)项目建议书
- 抗菌药物的正确使用
- 抗美援朝胜利原因
- 2025年环境污染防治专用设备项目发展计划
- 2025年江苏省苏州市工业园区景城学校中考数学二模试卷(含简略答案)
- 2025-2026学年河北省承德市双滦实验中学高二(上)开学数学试卷(含答案)
- 教师考试压轴题及答案
- 石油钻井知识课件
- “学回信精神·助改革发展”专题调研报告
- 2025年医学基础知识题库及答案
- 2025玉溪市公安局公开招聘警务辅助人员(120人)笔试参考题库附答案解析
- 职业院校实习生考核评价标准
- 水果保鲜的秘密课件
- 纪念中国人民抗日战争暨世界反法西斯战争胜利80周年
- 南京大学课程《普通地质学》教学大纲及教案
- 无人机公开课课件
- 2025年事业单位招聘考试综合类职业能力倾向测验真题模拟试卷:电子信息工程领域
- 仓库维修协议书
评论
0/150
提交评论