备注

大纲

"Visual Basic"

| Visual Basic
| 程序设计简明教程
| 第 二 版

"Visual Basic"

| Visual Basic 程序设计简明教程
| 第一章 Visual Basic程序设计概述（1）
| 第二章 VB简单的程序设计（3）
| 第三章 VB语言基础（2）
| 第四章 基本的控制结构（6）
| 第五章 数组（4）
| 第六章 过程（5）
| 第七章 常用控件（4）
| 第八章 界面设计（3）
| 第九章 文件（2）
| 第十章 图形（3）
| 第十一章 数据库技术（1）

第一章 Visual Basic程序设计概述
（1学时）

| 1.1 引例
| 1.2 VB主要功能和特点
| 1.3 VB集成开发环境

幻灯片4

幻灯片5

1.2 Vb主要功能和特点

| 1. 具有面向对象的可视化设计工具
| 2. 事件驱动的编程机制
| 3. 提供了易学易用的应用程序集成开发环境
| 4. 结构化的程序设计语言
| 5.支持多种数据库系统的访问
| 6. Active技术
| 7. VB6在开发环境上、网络功能等的增强
| 8.完备的help联机帮助功能

1.3 VB集成开发环境

"1.主窗口"

| 1.主窗口
| 应用程序窗口,由标题栏、菜单栏和工具栏组成
| 2.窗体(form)窗口
| 设计vb程序的 界面
| 3.代码(code)窗口
| 编辑窗体、标准模块中的代码
| 4.属性(properties)窗口
| 所有窗体或控件的属性设置
| 5.工程资源管理器(project expror)窗口
| 保存一个应用程序所有的文件
| 6. 工具箱(toolbox)窗口
| 显示各种控件的制作工具,供用户在窗体上设计

第二章 Vb简单的程序设计（3学时）

| 2.1 程序设计方法的发展
| 2.2 VB中的有关概念
| 2.3 建立简单的应用程序
| 2.4 基本控件和属性
| 2.5 工程的管理及环境的设置
| 2.6 生成可执行文件和制作安装盘
| 2.7 程序调试
| 2.8 常见错误

2.1 程序设计方法的发展

| 1.初期的程序设计
| 高运行效率、少占用内存为目标
| 2.结构化程序设计
| 程序的可读性、可维护性为目标
| 程序=算法+数据结构 的面向过程的程序设计
| 3.面向对象的程序设计
| 降低程序的复杂性、提高软件的开法效率和改善工作界面为目标
| 程序=对象+消息 的面向对象的程序设计

2.2 对象的有关概念

| 1.类
| 类是创建对象实例的模板, 包含了创建对象的属性描述和行为特征的定义.
| 2.对象
| 是类的一个实例,继承了类的属性、方法。
| Vb中常用的对象有:窗体、控件等。
| 3.对象的建立和命名
| 4.对象的三要素
| （1）属性
| 对象的性质，即用来描述和反映对象特征的参数。
| （2）方法
| 对象的行为，即将一些通用的过程编写好并封装起来，作为方法供用户直接调用。

"（3）事件"

| （3）事件
| 响应对象的动作称为事件，它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。
| 事件过程
| 指附在该对象上的用户编写的程序代码,是事件的处理程序。
| 事件驱动过程
| 是图形用户界面的本质，由用户控制而代码作出响应。
| 5. VB程序的执行步骤如下：
| 1）启动应用程序，装载和显示窗体；
| 2）窗体（或窗体上的控件）等待事件的发生；
| 3）事件发生时，执行对应的事件过程；
| 4）重复执行步骤（2）和（3） ；
| 5) 直到遇到“END”结束语句结束程序的运行；
| 或按“结束”强行停止程序的运行。

2.3 建立简单的应用程序

| 以例2.1为例
| 1.建立用户界面的对象
| 2.对象属性的设置
| 3.对象事件过程及编程
| 4.程序运行和调试
| 5.保存文件

2.4 基本控件和窗体

| 一.常用属性
| 1.Name名称属性
| 创建的对象名称,有默认的名.在程序中，控件名是作为对象的标识而引用，不会显示在窗体上。
| 2.Caption标题属性
| 该属性决定了控件上显示的内容。
| 3.Height、width、top和left属性

"4.Enabled属性"

| 4.Enabled属性
| 控件是否可操作. 当设置为false时,呈暗淡色,禁止用户进行操作.
| 5.Visible属性
| 控件是否可见.当设置为false时, 用户看不到，但控件本身存在。
| 6.Font属性
| Fontname 字体 Fontsize字体大小 Fontbold是否是粗体
| Fontitalic 是否斜体 Fontstrikethru是否加一删除线
| Fontunderline是否带下划线
| 例2.2 在窗体是建立两个命令按钮
| Command1和Command2， Command2
| 的Font通过属性窗口设置， 其余属性
| 通过代码实现。

"7"

| 7. Forecolor前景颜色属性
| 设置控件的前景颜色（即正文颜色). 其值是一个16进制常数，用户可以在调色板中直接选择所需颜色。
| 8. Backcolor背景颜色属性
| 9. Backstyle背景风格属性
| 0-transparent：透明显示，即控件背景颜色显示不出来
| 10. BorderStyle边框风格属性
| 0-None：控件周围没有边框
| 1-Fixed Single：控件带有单边框。
| 11. Alignment属性
| 控件上正文水平对齐方式
| 0: 正文左对齐 1: 右对齐 2: 居中
| 12. AutoSize属性
| 控件是否根据正文自动调整大小, False.
| 13. WordWarp属性
| AutoSize True时，WordWarp才有效
| 按正文字体大小在垂直方向上改变显示区域的大小。

幻灯片17
幻灯片18
幻灯片19
幻灯片20

"五.命令按钮CommandButton"

| 五.命令按钮CommandButton
| 接受用户输入的命令.输入命令可以有三种方式:
| 鼠标单击 Tab键焦点到该按钮 快捷键
| 1. 其他属性
| Caption: 命令按钮显示的内容,可设置快捷键,例 &Ok ,显示 Ok
| Value: 检查该按钮是否按下. 该属性在设计时无效.
| Picture : 按钮可显示图片文件(.bmp和.Ico)，当Style为1时有效
| Style : 确定显示的形式. 0 只能显示文字, 1 文字、图形均可 。
| ToolTipText ：设置工具提示，和Picture结合使用。
| 2.事件
| Click

"3.例 2.8"

| 3.例 2.8
| 建立一个允许剪切、复制和粘贴的简单便笺板程序。
| 可增加内容：利用MouseMove事件决定命令按钮的有效性，
| 即当选中内容，“剪切”、“复制”按钮有效，否则无效。

幻灯片23
幻灯片24
幻灯片25

七. 应用举例

| 例2-11 编一计算月支付贷款的程序。现要求根据房产商提供的信息，买房者选择房型、面积、单价、按揭期等信息，计算每月支付代款的程序。
| 窗体1：列表框选择数据、标签显示数据、文本框输入数据；
| 窗体2：图形框显示房屋的平面图。
| Pmt函数计算月支付贷款

2.5 工程的管理及环境的设置

| 一.工程的组成
| 工程文件包含了一个应用程序的所有文件:
| 窗体文件（.frm）:控件及属性、事件过程和自定义过程
| 窗体的二进制数据文件（.frx）,自动产生同名.frx文件。
| 标准模块文件（.bas）
| 类模块的文件（.cls）
| 资源文件（.res）
| ActiveX控件的文件（.ocx）
| 二.创建、打开和保存工程

"三.添加、删除和保存文件"

| 三.添加、删除和保存文件
| 1.窗体名和窗体文件名概念
| 窗体名：窗体的Name属性，
| 在代码中用来引用该窗体,同一
| 工程不能有相同的窗体名；
| 窗体文件名：窗体存放在磁盘上的文件名,该文件包含了该窗体的所有控件属性和代码,同一文件夹不能有相同的文件名。
| 2.在工程中添加现存的窗体时，只是对该窗体文件的引用纳入工程。因此，如果更改窗体并保存它，会影响包含此窗体文件的任何工程。
| 3.在工程中删除窗体时，仅将此窗体从工程里删除掉，但是窗体文件仍存在于磁盘上。但是，如果在VB之外删除一个窗体文件，VB不能更新此工程文件,当打开此工程时，将显示一个文件丢失的错误信息。
| 4.对窗体文件改名方法
| 1).打开工程
| “另存为…Form”实现文件的复制 保存工程文件
| 2).利用编辑程序打开工程文件 , 修改FORM=XXX的文件名

2.6 生成可执行文件和制作安装盘

| 以工程文件例2.11为例
| 1.生成可执行文件
| 文件/生成V6B2-11.exe文件，然后关闭Visual Basic6.0。
| 2.制作安装盘
| 运行V B6.0中文版工具“Package & Deployment”,在向导的指导下：
| “打包”：把工程中用到的各种类型的文件进行打包压缩后，存放
| 到特定的目录下。
| “展开”：再把这些打包的文件展开到用户可以携带的安装介质 软盘、光盘等。
| 3.检测安装程序
| 在没有VB6.0系统的环境下,执行安装盘中的Setup.exe文件，将 发行盘进行安装。

2.7 程序调试

| 一.错误类型
| （1）编辑错误
| 在编辑代码时，VB会对键入的代码直接进行语法检查。当发现代码存在打字错误，遗漏关键字或标点符等语法错误，VB在Form窗口中弹出一个子窗口，提示出错信息，出错的那一行变成红色。这时，用户必须单击“确定”按钮，关闭出错提示窗，然后对出错行进行修改。

"（2）编译错误"

| （2）编译错误
| 编译错误指按了“启动”按钮，VB开始运行程序前，先编译执行的程序段时，产生的错误。此类错误由于用户未定义变量、遗漏关键字等原因产生。这时，Visual Basic也弹出一个子窗口，提示出错信息，出错的那一行被高亮度显示。

"（3） 运行错误"

| （3） 运行错误
| 运行时错误指VB在编译通过后，运行代码时发生的错误。这类错误往往是指令代码执行了一非法操作引起的。例如类型不匹配、试图打开一个不存在的文件等。

"（4） 逻辑错误"

| （4） 逻辑错误
| 程序运行后，得不到所期望的结果，这说明程序存在逻辑错误。这类错误往往是程序存在逻辑上的缺陷所引起。例如，运算符使用不正确、语句的次序不对、循环语句的起始、终值不正确等。通常，逻辑错误不会产生错误提示信息，故错误较难排除，需要程序员仔细地阅读分析程序以及调试。

幻灯片34
幻灯片35
幻灯片36

第三章 VB语言基础
（2学时）

| 3.1 编码规则
| 3.2 数据类型
| 3.3 变量与常量
| 3.4 运算符和表达式
| 3.5 常用函数
| 3.6 常见错误

3.1 编码基础

| 1.VB代码不区分字母的大小写
| 系统保留字自动转换每个单词的首字母大写
| 用户自定义行以第一次为准
| 2.语句书写自由
| 一行可书写几句语句,之间用冒号分隔;
| 一句语句可分若干行书写，用续行符连接 _
| 一行<=255个字符
| 3.注释有利于程序的维护和调试
| Rem开始 或 单撇号 ‘
| 4.保留行号与标号

3.2 数据类型

| 标准数据类型

3.3 变量与常量

| 一.变量和常量的命名规则
| 变量：在程序运行中其存储的值可以改变。
| 常量：在程序运行中其值不可以改变。
| 命名 规则：
| 1.以字母或汉字开头，后可跟汉字、字母、数字或下划线组
| 成，长度小于等于255个字符；
| 2.不要使用VB中的关键字；
| 3.VB中不区分变量名的大小写.
| 4.为了增加程序的可读性，可在变量名前加一个缩写的前缀来表明该变量的数据类型。

"二.变量声明"

| 二.变量声明
| 1.用Dim语句显式声明变量
| 形式 :Dim 变量名 [AS 类型]
| Dim 变量名类型符
| 例 Dim iCount As integer , sAllsum As single
| 等价于 Dim iCount%, sAllsum!
| 2.隐式声明
| 未进行上述的声明而直接使用，其类型为 Variant 类型。
| 建议不使用.
| 注意: 在通用声明处加 Option Explicit 语句可强制显式声明变量。

"三"

| 三. 常量
| 1. 用户声明常量
| 形式：
| Const 常量名 [AS 类型] = 表达式
| 省略 [AS 类型] ,常量的类型由表达式值的类型决定
| 为使与变量名区分，一般常量名使用大写字母
| 例 Const MAX=100
| 2. 系统提供的常量
| 系统定义常量位于对象库中,可通过“对象浏览器”查看.
| 例: vbNormal vbMinimized、vbbCrLf等

3.4 运算符和表达式

| 一. 运算符
| 1. 算术运算符
| 例：5+10 mod 10 \ 9 / 3 +2 ^2 结果：10

"2"

| 2. 字符串运算符
| ＆ 、+ 字符串连接
| " 123 " + " 456 " 结果 " 123456 "
| " 123 " & " 456 " 结果 " 123456 "
| 区别: + 两边必须是字符串, & 不一定
| 例如:
| "abcdef" & 12345 ' 结果为 "abcdef12345 "
| "abcdef " + 12345 ' 出错
| "123" & 456 ' 结果为" 123456 "
| “123” + 456 ' 结果为 579
| 注意：
| "123 " + True '结果为 122
| True转换为数值-1，False转换为数值0

"3．关系运算符"

| 3．关系运算符
| 将两个操作数进行大小比较,结果为逻辑量。
| 字符串比较,则按字符的ASCII码值从左到右一一比较,直到出现不同的字符为止.。
| 例： " ABCDE " > " ABRA " 结果为 False

"4"

| 4. 逻辑运算符
| 将操作数进行逻辑运算，结果是逻辑值
| 条件表达式1 And 条件表达式2 条件表达式均为T 结果为T
| 条件表达式1 Or 条件表达式2 条件表达式有一个T 结果为T

"二"

| 二. 表达式
| 1.组成
| 变量、常量、函数、运算符和圆括号
| 2.书写规则
| (1) 运算符不能相邻。例a+ -b是错误的。
| (2) 乘号不能省略。例x 乘以y 应写成：x*y
| (3) 括号必须成对出现，均使用圆括号。
| (4) 表达式从左到右在同一基准上书写，无高低、大小。
| 3. 不同数据类型的转换
| 运算结果的数据类型向精度高的数据类型靠.
| Integer<Long<Single<Double<Currency
| 4. 优先级
| 算术运算符>=字符运算符>关系运算符>逻辑运算

表达式书写举例

| sin(45*3.14/180)+(exp(10)+log(10))/sqr(x+y+1)

幻灯片49

"3.5 常用内部函数"

| 3.5 常用内部函数
| 1. 数学函数
| Rnd函数返回0和1（包括0但不包括1）之间的双精度随机数.
| 每次运行时，要产生不同序列的随机数，执行Randomize 语句。
| 例产生1-100的随机数: Int(Rnd *100)+1
| 2. 转换函数
| Chr(66) "B" Asc ("B") 66
| Asc(Chr(99)) 99 Chr(Asc("K")) "K"
| Ucase$("abcdefg") "ABCDEFG"
| 3.日期函数

幻灯片51

"5.格式输出函数"

| 5.格式输出函数
| 例3.1 利用Format函数显示有关的日期和时间。
| Private Sub Form_Click()
| FontSize = 12
| MyTime = #9:21:30 PM#
| MyDate = #7/21/1997#
| Print Tab(2); Format(MyDate, "m/d/yy")
| Print Tab(2); Format(MyDate, "mmmm-yy")
| Print Tab(2); Format(MyTime, "h-m-s AM/PM")
| Print Tab(2); Format(MyTime, "hh:mm:ss A/P")
| Print Tab(2); Format(Date, "dddd,mmmm,dd,yyyy")
| Print Tab(2); Format(Now, "yyyy年m月dd日 hh：mm")
| Print FormatDateTime(Now) ' vb6.0新提供的函数
| End Sub

"6"

| 6. Shell函数
| Shell函数负责执行一个可执行文件，返回一个Variant，如果成功，代表这个程序的进程ID，若不成功，则会返回0。
| 形式: Shell(命令字符串,窗口类型)
| 窗口类型值为1表示正常窗口，缺省窗口最小化为图标。
| i = Shell("c:\windows\calc.exe") j = Shell("c:\command.com", 1)

3.6 常见错误

| 1.逻辑表达式书写错，在VB没有造成语法错而形成逻辑错
| 例如数学表达式 3≤x＜10 VB表达式写为 3<=x<10
| 问题在于VB中的逻辑量与数值量可互转
| 2.同时给多个变量赋值，在VB没有造成语法错而形成逻辑错
| 例如Dim x%,y%,z%
| x=y=z=1
| 3.标准函数名写错
| 4.变量名写错
| 检查方法：在通用声明段加Option Explicit
| 5.语句书写位置错
| 在通用声明段只能有Dim语句，不能有赋值等其它语句

第四章 基本的控制结构
（8学时）

| 4.1 顺序结构
| 4.2 选择结构
| 4.3 循环结构
| 4.4 其它辅助控制语句
| 4.5 常用算法（一）
| 4.6 常见错误 （顺序、条件、循环）

4.1 顺序结构

| 一. 赋值语句
| 形式: [LET]变量名＝表达式
| 作用: 将表达式的值赋值给变量名.
| 一般用于给变量赋值或对控件设定属性值.
| 例: sRate!=0.1
| Text1.Text ＝ "欢迎使用Visual Basic 6.0”
| 当表达式的类型与变量的类型不一致时,强制转换成左边的精度
| iA% = 10 / 3 iA中的结果为3
| 注意：虽然赋值号与关系运算符等于号都用“=”表示，VB系统会根据所处的位置自动判断是何种意义的符号。

"二"

| 二. 与用户交互函数和过程
| 1.InputBox函数
| InputBox(提示[，标题][，缺省][，x 坐标位置][，y坐标位置])
| 其中:提示 提示信息，标题 对话框标题，缺省输入区缺省值
| 函数返回字符类型.
| 例要在屏幕上显示图示的对话框:

"2"

| 2. MsgBox函数和MsgBox过程
| 函数形式:变量[%] = MsgBox(提示[,按钮][，标题])
| 过程形式: MsgBox 提示[,按钮][,标题]
| 按钮值如下: 函数返回所选按钮整数值:

"例4."

| 例4.1 编一帐号和密码检验程序。
| 要求:
| 帐号不超过6位数字,有错,清除原内容再输入.
| 密码输入时在屏幕上以 “*”代替; 若密码错，显示有关信息，选择“重试”按钮，清除原内容再输入，选择“取消”按钮，停止运行。
| 分析:
| 帐号6位,MaxLength为6 , LostFocus判断数字IsNumeric函数
| 密码PassWordChar为“*”,MsgBox函数设置密码错对话框.

幻灯片60

"4.2 选择结构"

| 4.2 选择结构
| 1. If…Then语句(单分支结构)
| If <表达式> Then
| 语句块
| End If
| 或 If <表达式> Then <语句>

"2"

| 2. If…Then…Else语句(双分支结构)
| If <表达式> Then
| <语句块1>
| Else
| <语句块2>
| End If
| If <表达式> Then <语句1> Else <语句2>
| 计算分段函数

"3"

| 3. If…Then…ElseIf语句(多分支结构)
| 形式:
| If <表达式1> Then
| <语句块1>
| ElseIf <表达式2>Then
| <语句块2>
| …
| [Else
| 语句块 n+1 ]
| End If

幻灯片64
幻灯片65
幻灯片66

"5"

| 5. Select Case语句(情况语句)
| 形式：
| Select Case 变量或表达式
| Case 表达式列表1
| 语句块1
| Case 表达式列表2
| 语句块2
| …
| [Case Else
| 语句块n+1]
| End Select

幻灯片68
幻灯片69
幻灯片70
幻灯片71
幻灯片72
幻灯片73
幻灯片74
幻灯片75
幻灯片76
幻灯片77
幻灯片78
幻灯片79
幻灯片80
幻灯片81
幻灯片82

4.5 常用算法（一）

| 算法是对某个问题求解过程的描述
| 1.累加、连乘

幻灯片84
幻灯片85
幻灯片86
幻灯片87
幻灯片88
幻灯片89
幻灯片90

第五章 数组
（4学时）

| 5.1 数组的概念
| 5.2 静态数组及声明
| 5.3 动态数组及声明
| 5.4 数组的基本操作
| 5.5 控件数组
| 5.6 自定义数据类型
| 5.7 常用算法（二）
| 5.8 常见错误

幻灯片92

"5.2"

| 5.2 静态数组及声明
| 数组不是一种数据类型，而是一组相同类型的变量的集合，数组必须先声明后使用。
| 两类数组： 静态(定长)数组、动态(可变长)数组
| 1. 静态数组及声明
| 形式: Dim 数组名(下标1[,下标2…]) [As 类型]
| 声明了数组的名、维数、大小、类型
| 维数：几个下标为几维数组，最多60维。
| 下标: [下界 To ] 上界 省略下界为0 ,必须为常数。
| 每一维大小: 上界－下界+1
| 数组大小: 每一维大小的乘积
| 例：Dim mark(1 to 100) As Integer

幻灯片94
幻灯片95
幻灯片96
幻灯片97
幻灯片98
幻灯片99
幻灯片100
幻灯片101
幻灯片102
幻灯片103
幻灯片104
幻灯片105
幻灯片106
幻灯片107
幻灯片108
幻灯片109

第六章 过程
（5学时）

| 6.1 函数过程的定义与调用
| 6.2 子过程的定义与调用
| 6.3 参数传递
| 6.4 变量、过程的作用域
| 6.5 递归
| 6.6 常用算法（三）
| 6.7 重点和难点

"6.1 函数过程的定义"

| 6.1 函数过程的定义
| 除了系统提供的内部函数过程和事件过程外，用户可自定义过程：
| 以Sub保留字开始的为子过程
| 以Function保留字开始的为函数过程
| 1. 引例6.1
| 已知多边形的各条边的长度，要计算多边形的面积。
| 计算多边形面积，可将多边形分解成若干个三角形。
| 计算三角形面积的公式如下：

幻灯片112
幻灯片113
幻灯片114
幻灯片115
幻灯片116
幻灯片117
幻灯片118
幻灯片119
幻灯片120
幻灯片121
幻灯片122
幻灯片123
幻灯片124
幻灯片125
幻灯片126
幻灯片127
幻灯片128
幻灯片129
幻灯片130
幻灯片131
幻灯片132
幻灯片133
幻灯片134
幻灯片135
幻灯片136
幻灯片137
幻灯片138
幻灯片139
幻灯片140
幻灯片141
幻灯片142
幻灯片143

6.7重点和难点

| 1. 确定自定义的过程是子过程还是函数过程
| 函数过程名有值，子过程名无值。
| 过程有一个返回值，则使用函数过程；
| 若返回多个值或无返回值，一般使用子过程。
| 2．过程中形参的个数和传递方式的确定
| 过程中参数的作用是实现过程与调用者的数据通信。
| (1)从主调程序获得初值，值传递。
| (2)将结果返回给主调程序，地址传递。
| 3. 实参与形参结合时对应问题
| 个数、类型、位置、次序一一对应。
| 形参是值传递，对应实参可以是表达式、常量、数组元素。
| 形参是地址传递，对应实参只能是简单变量。
| 数组、记录类型、对象只能是地址传递。

"4"

| 4. 变量的作用域问题
| 局部变量、静态变量、全局变量特点、作用
| 5. 递归调用出现“栈溢出”
| 递归过程中有终止的条件和终止时的值或某种操作；
| 每递归调用一次，其中的参数要向终止方向收敛。

第七章 常用控件

| 7.1 单选按钮和复选框
| 7.2 框架
| 7.3 列表框和组合框
| 7.4 滚动条和Slide控件
| 7.5 时钟
| 7.6 ProgressBar控件
| 7.7 UpDown控件
| 7.8 Animation控件
| 7.9 SSTab控件
| 7.10 鼠标器和键盘

幻灯片147
幻灯片148

"ActiveX控件与ActiveX DLL/EXE..."

| ActiveX控件与ActiveX DLL/EXE的区别：
| ActiveX控件：
| 有界面
| 用“工程/部件”命令加载
| 工具箱上有图标
| ActiveXDLL/EXE：
| 没有界面
| 用“工程/引用”设置引用
| 工具箱上没有图标
| 3. 可插入对象
| Windows应用程序的对象
| 可插入对象可添加到工具箱上
| 同标准控件一样使用
| 例如：Microsoft Excel工作表

7.1 单选钮和复选框

| Caption属性：文本标题。
| Alignment属性
| 0：控件钮在左边，标题显示在右边。
| 1：控件钮在右边，标题显示在左边。
| Value属性
| 单选钮(逻辑型) 检查框（数值型）
| True：选定 0--Unchecked：未被选定
| False：未选定 1--Checked：选定
| 2--Grayed：灰色，禁止选择
| Style属性
| 0--Standard：标准方式
| 1--Graphical：图形方式

"事件：Click"

| 事件：Click
| 因为单击时自动改变状态，故不需要编写过程
| 例7.1 用单选钮和检查框设置文本框的字体。

7.2 框架(Frame)

| 框架内控件的创建方法：
| 方法1：单击工具箱上的工具，然后用出现的“+”指针，在框架中适当位置拖拉出适当大小的控件。
| 不能使用双击工具箱上图标的自动方式。
| 方法2：将控件“剪切”到剪贴板，然后粘贴(Ctrl+V)到框架。

"Caption属性：框架标题"

| Caption属性：框架标题
| Enabled属性
| False：标题呈灰色，不允许对框架内的对象进行操作。
| Visible属性
| True：框架及其控件可见。
| False：框架及其控件被隐含起来。
| Click、DblClick事件
| 一般不需要编写框架的事件过程。
| 例7.2 框架用法示例

7.3 列表框和组合框

| 列表框各主要属性的值：
| List1.ListIndex = 3 (下标从0开始的)
| List1. ListCount = 5
| List1. Selected(3) = True，其余为False。
| List1. Sorted = False，没有排序。
| List1. Text 为 “cox” ，
| 与List1. List(List1. ListIndex)相等

幻灯片155
幻灯片156

"4"

| 4. 方法
| AddItem
| 对象.AddItem item [, index]
| RemoveItem
| 对象.RemoveItem index
| Clear
| 对象.Clear
| 5. 事件
| 列表框：Click、DblClick
| 组合框：Click，只有简单组合框才有DblClick事件
| 一般不需要编写Click事件过程
| 通常在单击命令按钮或发生DblClick事件时才读取Text属性

"例7."

| 例7.3 对列表框进行项目添加、修改和删除操作。

7.4 滚动条和Slider控件

| 共同具有的重要属性
| Max：最大值 -32,768~32,767
| Min：最小值 -32,768~32,767
| SmallChange 最小变动值，单击箭头时移动的增量值。
| LargeChange 最大变动值，单击空白处时移动的增量值。
| Value 滑块所处位置所代表的值。

"事件"

| 事件：
| Scroll：拖动滑块时会触发Scroll事件。
| Change：Value属性改变时触发Change事件。
| 例7.5 用一个文本框(txtSpeed)显示滚动条(hsbSpeed)滑块当前位置所代表的值。

7.5 时钟(Timer)

| 时钟控件以Interval为时间间隔产生 Timer事件。
| 属性
| Interval属性
| 单位：ms(0.001s)，0.5秒是500。
| Interval＝0：屏蔽计时器。
| Enabled属性
| True：有效计时
| False：停止时钟工作
| 事件
| Timer
| 例7.8 定时的闹钟
| 例7.9 蝴蝶飞舞

7.6 ProgressBar控件

7.7 UpDown控件

| 位于Microsoft Windows Common Control-2 6.0
| 通常与伙伴控件 “捆绑”在一起使用。

7.8 Animation控件

| 位于Microsoft Windows Common Control-2 6.0
| 属性：
| Center：决定动画是否在控件的中央播放
| AutoPlay属性：决定在用Open方法打开文件时是否自动播放。
| 方法：
| Open：打开文件
| Play： 播放动画
| Stop：停止播放
| Close：关闭文件
| 例7.11 为例7.10配上动画。

"位于Microsoft Tabbed Dialog Control..."

| 位于Microsoft Tabbed Dialog Control 6.0
| 重要属性
| Style：选项卡样式
| Tabs：选项卡总数
| TabsPerRow：每一行选项卡的数目
| Rows：选项卡总行数
| TabOrientation：选项卡的位置。
| ShowFocusRect：决定选项卡上的焦点矩形是否可视。
| Tab：当前选项卡的序号。
| 序号从0开始，如果Tab为1，则第 二个选项卡为当
| 前活动的选项卡。
| 例7.12 选项卡制作示例

7.10 鼠标器和键盘

| 1. 鼠标器事件
| 注意：鼠标事件发生在什么对象上，是窗体上还是控件上。
| MouseDown事件
| Sub Form_MouseDown(Button As Integer, Shift As Integer,
| X As Single, Y As Single)（发生在窗体上的事件过程）
| MouseUp事件
| Sub Form_MouseUp(Button As Integer, Shift As Integer,
| X As Single, Y As Single) （发生在窗体上的事件过程）
| MouseMove事件
| Sub Form_MouseMove(Button As Integer, Shift As Integer,
| X As Single, Y As Single) （发生在窗体上的事件过程）

"(1) Button参数"

| (1) Button参数

"(2) Shift参数"

| (2) Shift参数

"符号常数"

| 符号常数：
| 1—vbShiftMask
| 2—vbCtrlMask
| 4—vbAltMask
| Shfit And vbCtrlMask为真：
| 按下了Ctrl键
| CBool(Shift And vbCtrlMask) Or CBool(Shift And vbShiftMask)为真： 按下了Ctrl键和Shift键

"2"

| 2. 键盘事件
| KeyPress事件过程
| Sub Form_KeyPress(KeyAscii As Integer)
| Sub object_KeyPress([index As Integer,]KeyAscii As Integer)
| KeyDown事件过程
| Sub Form_KeyDown(keycode As Integer, shift As Integer)
| Sub object_KeyDown([index As Integer,]keycode As Integer,
| shift As Integer)
| KeyUp和KeyDown事件过程
| Sub Form_KeyUp(keycode As Integer, shift As Integer)
| Sub object_KeyUp([index As Integer,]keycode As Integer,
| shift As Integer)
| 参数说明
| Shift与鼠标事件过程Shift相同
| KeyCode：键盘扫描码
| KeyAscii：字符ASCII码

幻灯片171

幻灯片172

"对输入的数据进行验证..."

| 对输入的数据进行验证、限制和修改
| 1. 修改输入数据。
| 接收大写字符
| 将KeyPreview设置为True时
| Sub Form_KeyPress(KeyAscii As Integer)
| If KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Then
| KeyAscii = KeyAscii + Asc("A") - Asc("a")
| End If
| End Sub
| 如果把它改为某个控件的事件过程，效果一样吗？
| 2. 限制数据输入
| 文本框只能接收“0”～“9”的数字字符。
| Sub txtExample_KeyPress(KeyAscii As Integer)
| If KeyAscii < 48 Or KeyAscii > 57 Then
| KeyAscii = 0
| End If
| End Sub

"例7.15 编写一个..."

| 例7.15 编写一个程序，当按下Alt+F5时终止程序的运行。
| '先把窗体的KeyPreview设置为True，再编写如下的程序：
| Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
| '按下Alt键时，Shift的值为4
| If (KeyCode = vbKeyF5) And (Shift = 4) Then
| End
| End If
| End Sub

"例7.16 “锤打..."

| 例7.16 “锤打红心”游戏

"3.拖放"

| 3.拖放

"1"

| 1. DragMode属性
| 0：(缺省)，手工拖动模式
| 1：自动拖动模式
| 2. DragIcon属性
| 拖动过程中显示的图标(Ico或Cur文件)。
| lblExample1.DragIcon=LoadPicture ("C:\Icons\Mail.ico")
| lblExample2.DragIcon=picIcon.Picture
| 3. Drag方法
| 当DragMode为0时，需用Drag方法启动拖放
| [控件名称.]Drag 参数
| 0：开始拖放操作
| 1(省略)：结束拖放操作
| 2：取消拖放操作

"例7.17 拖放应用..."

| 例7.17 拖放应用示例
| 例7.18 拖放应用示例

4. OLE 拖放

"例7.19从Windows资源管理器..."

| 例7.19从Windows资源管理器把文件的文件名拖到标签上

幻灯片181

8.1 通用对话框(CommonDialog)

| 属性
| Action：打开通用对话框。
| DialogTiltle：对通用话框标题。
| CancelError
| True：选择“取消”按钮，出现错误警告；
| Err.Number置为32755(cdCancel)。
| False(缺省)：选择“取消”按钮，没有错误警告。

1.文件对话框（打开、保存）需设置的属性

“打开”文件对话框属性页

| 属性
| FileName：包含路径
| FileTitle：不包含路径
| Filter：例如，
| Documents(*.DOC)|*.DOC|Text Files(*.TXT)|*.txt|All Files|*.*
| FilterIndex：决定在文件类型列表框中显示第几组类型的文件。
| InitDir：初始化路径

"例8."

| 例8.1 用命令按钮的Click事件显示文件打开对话框

"4"

| 4. “字体”对话框

"5"

| 5. “打印”对话框
| 属性
| FromPage：起始页号
| ToPage：终止页号
| Copies：打印份数
| 如果打印驱动程序不支持多份打印，该属性有可能始终返回 1。
| 例8.4 打印对话框的使用
| 6. “帮助”对话框
| 帮助文件需要用其它的工具制作，如Microsoft Windows Help Compiler。
| 属性 例8.5
| HelpCommand：在线Help帮助类型
| HelpFile：Help文件的路径及其名称
| HelpKey：在帮助窗口显示由该帮助关键字指定的帮助信息。

8.2 菜单的设计

| 下拉式菜单系统的组成结构 ：

"一、菜单编辑器的使用"

| 一、菜单编辑器的使用
| 工具／菜单编辑器(CTRL+E)
| 窗体上快显菜单／菜单编辑器

二、 菜单项增减

| 在程序运行时，菜单随时增减，如“文件”菜单能保留最近打开的文件数。这同控件数组一样，使用菜单数组。
| 步骤：
| 1.在菜单设计时，加入一个菜单项，其Index为0（菜单数组）,
| Visual为False。
| 2.在程序运行时，通过Load方法向菜单数组增加新的菜单项。
| 例8.7 在8.6中的文件菜单中保留最近打开的文件清单。
| 同样，要删除所建立的菜单项，使用UnLoad方法向菜单数组减少菜单项。

三、 弹出菜单(快捷菜单)

| 弹出菜单是独立于窗体菜单栏而显示在窗体内的浮动菜单。显示位置取决于单击鼠标键时指针的位置。设计与普通菜单相同（如果不希望菜单出现在窗口的顶部，该菜单名Visible属性设置为False ）。菜单弹出的方法：
| [对象.]PopupMenu 菜单名, 标志, x, y
| 标志，表示弹出的位置和触发的键

8.3 多重窗体和多文档窗体

| 一、多重窗体
| 1.添加窗体
| “工程|添加窗体”

"3"

| 3. 设置启动窗体

"5"

| 5. 窗体方法
| (1)Show方法：显示一个窗体（当窗体没有Load，自动Load）
| [窗体名称].Show [模式]
| 0 － Modal：关闭才能对其它窗体进行操作。
| 1 － Modeless，可以对其它窗体进行操作。
| (2) Hide方法：隐藏窗体，没有Unload删除
| [窗体名称.] Hide
| 6.不同窗体间数据的存取
| (1)存取控件的属性
| 另一窗体名.控件名.属性
| (2)存取变量的值
| 另一窗体名.全局变量名

"例8."

| 例8.8 输入和计算学习成绩。

幻灯片196
幻灯片197
幻灯片198
幻灯片199
幻灯片200
幻灯片201
幻灯片202
幻灯片203
幻灯片204
幻灯片205
幻灯片206
幻灯片207
幻灯片208
幻灯片209
幻灯片210

第九章 文件

| 9.1 文件系统控件
| 9.2 文件的读写
| 9.3 常用的文件操作语句和函数

9.1 驱动器、目录和文件列表框

"1"

| 1. 驱动器列表框
| Drive属性：
| [对象.]Drive [= drive]
| Change事件：
| 重新设置Drive属性引发Change事件
| 2. 目录列表框
| Path属性 ：
| [对象.]Path [= pathname]
| Change事件：
| 重新设置Path 属性引发Change事件

"3"

| 3. 文件列表框
| Path属性：
| 显示该路径下的文件。
| 重新设置Path属性引发PathChange事件。
| Pattern属性：
| 显示的文件类型。
| [对象.]Pattern [= value]
| 重新设置Pattern属性引发PatternChange事件。
| 例如：filFile.Pattern = "*.frm"，显示*.frm文件。
| 多个文件类型用分号；分界。例如： "*.frm;*.frx"
| FileName属性：
| [对象.]FileName [= pathname]
| 引用时只返回文件名，相当于ilFile.List(filFile .ListIndex)，需用Path属性得到其路径；设置时可带路径。

"Click、DblClick事件"

| Click、DblClick事件：
| 例如，单击输出文件名。
| Sub filFile_Click( )
| MsgBox filFile.FileName
| End Sub
| 例如，双击执行可执行程序
| Sub filFile_DblClick( )
| ChDir (dirDirectory.Path) ’ 改变当前目录
| RetVal = Shell(filFile.FileName, 1) ’ 执行程序
| End Sub

9.2 文件的读写

| 文件：存储在外部介质上数据的集合。
| 按名存取
| 1. 记录
| 由若干个相互关联的数据项组成。
| 例如，由学生的学习成绩信息组成的记录：

"(1) 顺序文件"

| (1) 顺序文件
| 按顺序依次把记录写入文件；
| 按顺序依次把记录读出来。

一、 顺序访问模式

| 1. 打开文件
| Open 文件名 [For 模式] As [#]文件号 [Len=记录长度]
| (1) 模式
| OUTPUT：写操作
| INPUT：读操作
| APPEND：追加到文件未尾
| (2) 文件号
| 1～511，可以用FreeFile函数获得下一个可利用的文件号。
| (3) 记录长度
| 小于或等于32767的整数，它指定数据缓冲区的大小。
| 例如，打开C:\VB\SCORE，供写入数据，指定文件号为#1。
| OPEN "C:\VB\SCORE" FOR OUTPUT AS #1

"2"

| 2. 写入命令
| Print #文件号，[输出列表]
| 保存文本框
| 假定文本框的名称为Text1，文件名为TEST.DAT。
| 方法1：把整个文本框的内容一次性地写入文件。
| Open "TEST.DAT" For Output As #1
| Print #1, Text1
| Close #1
| 方法2：把整个文本框的内容一个字符一个字符地写入文件。
| Open "TEST.DAT" For Output As #1
| For i=1 To len(Test1)
| Print #1,Mid(Text1, i, 1);
| Next i
| Close #1

"Write #文件号，[输出..."

| Write #文件号，[输出列表]
| 紧凑格式。数据项之间插入“,”，并加上双引号。
| 例如，命令：Write #1,"One","Two",123
| 内容："One","Two",123
| 3. 关闭文件
| Close [[#]文件号][, [#]文件号]...
| 例如，Close #1, #2, #3

"4"

| 4. 读顺序文件
| INPUT #文件号,变量列表
| 把读出的每个数据项分别存放到所对应的变量。
| LINE INPUT #文件号,字符串变量
| 读一行到变量中，主要用来读取文本文件。
| INPUT$(读取字符数,#文件号)
| 随意读取字符
| 5. 函数
| LOF(文件号)：返回文件的长度(总字节数)。
| EOF(文件号)：返回读写位置。
| 指针在文件尾时，EOF函数为True，否则为False。

"读文本文件到文本框"

| 读文本文件到文本框
| 假定文本框名称为Text1，文件名为MYFILE.TXT。
| 方法1：一行一行读
| Text1.Text ＝ ""
| Open "MYFILE.TXT" For Input As #1
| Do While Not EOF(1)
| Line Input #1, InputData
| Text1.Text ＝ Text1.Text + InputData+vbCrLf
| Loop
| Close #1

"方法2：一次性"

| 方法2：一次性读
| Text1.Text ＝ ""
| Open "MYFILE.TXT" For Input As #1
| Text1.Text = Input$( LOF(1), 1)
| Close #1
| 方法3：一个个字符读
| Dim InputData as String*1
| Text1.Text ＝ ""
| Open "MYFILE.TXT" For Input As #1
| Do While Not EOF(1)
| InputData= Input$(1,#1)
| Text1.Text ＝ Text1.Text + InputData
| Loop
| Close #1

"例9."

| 例9.3 文件加密程序

二、随机文件

| 1. 打开
| Open 文件名 For Random As #文件号 [Len=记录长度]
| 2. 写操作
| Put [#]文件号，[记录号]，变量名
| 将一个记录变量的内容写到指定的记录位置处。
| 忽略记录号，则表示在当前记录后的位置插入一条记录。
| 3. 读操作
| Get [#]文件号，[记录号]，变量名
| 忽略记录号，则读出当前记录后的那一条记录。

"例9."

| 例9.4 学生信息管理程序。
| 追加记录(Command1)：将一个学生的信息作为一条记录添加到随机文件末尾。
| 显示记录(cmdDisplay)：显示在右边文本框(text4)中指定的记录。

三、二进制文件

| 1. 打开
| Open 文件名 For Binary As #文件号
| 2. 写操作
| Put [#]文件号，[位置]，变量名
| 写入长度等于变量长度的数据。
| 3. 读操作
| GET [#]文件号，[位置]，变量名
| 从指定位置开始读出长度等于变量长度的数据存入变量中，数据读出后移动变量长度位置，如果忽略位置，则表示从文件指针所指的位置开始读出数据，数据读出后移动变量长度位置。

"例9."

| 例9.5 文件复制
| Dim char As Byte
| Dim FileNum1,FileNum2 as Integer
| FileNum1 = FreeFile
| '打开源文件
| Open "C:\STUDENT.DAT" For Binary As # FileNum1
| FileNum2 = FreeFile
| '打开目标文件
| Open "C:\STUDENT.BAK" For Binary As # FileNum2
| Do While Not EOF(FileNum1)
| Get #1, , char '从源文件读出一个字节
| Put #2, , char '将一个字节写入目标文件
| Loop
| Close #FileNum1
| Close #FileNum2

9.3 常用的文件操作语句和函数

| 1. FileCopy语句
| 格式：FileCopy source , destination
| 功能：复制一个文件。
| 说明： FileCopy语句不能复制一个已打开的文件。
| 2. Kill语句
| 格式：Kill pathname
| 功能：删除文件。
| 说明：pathname中可以使用统配符“*”和“?”。
| 例如：Kill "*.TXT"
| 3. Name 语句
| 格式：Name oldpathname As newpathname
| 功能：重新命名一个文件或目录。
| 说明：(1) Name具有移动文件的功能。
| (2) 不能使用统配符“*”和“?”，不能对一个已打开的文件上使用Name语句。

"4"

| 4. ChDrive 语句
| 格式：ChDrive drive
| 功能：改变当前驱动器。
| 说明：如果drive为“”，则当前驱动器将不会改变；如果drive中有多个字 符，则ChDrive只会使用首字母。
| 5. MkDir 语句
| 格式：MkDir path
| 功能：创建一个新的目录。
| 6. ChDir 语句
| 格式：ChDir path
| 功能：改变当前目录。
| 例如：ChDir "D:\TMP"
| 7. RmDir 语句
| 格式：RmDir path
| 功能：删除一个存在的目录。
| 说明：只能删除空目录。

"8"

| 8. CurDir函数
| 格式：CurDir[(drive)]
| 功能：利用CurDir函数可以确定任何一个驱动器的当前目录。
| 说明： drive为“”，则CurDir返回当前驱动器的当前目录。
| 例9.6 利用ChDrive和ChDir语句改写例9.1中的File1_DblClick()事件过程。
| Sub File1_DblClick()
| ChDrive Drive1.Drive ' 设置缺省驱动器
| ChDir File1.Path ' 设置缺省目录
| RetVal = Shell(File1.FileName, 1)
| End Sub

第十章 图 形 操 作
（3学时）

| 10.1 图形操作基础
| 10.2 绘图属性
| 10.3 图形控件
| 10.4 图形方法
| *10.5 应用

10.1 图形操作基础

| 10.1.1 坐标系统
| 每个容器都有一个坐标系，构成一个坐标系，需要三个要素：坐标原点、坐标度量单位、坐标轴的长度与方向。坐标度量单位由容器对象的ScaleMode属性决定。缺省时为Twip。每英寸1440个Twip，20个Twip为一磅。

"10.1.2 自行定义..."

| 10.1.2 自行定义坐标系
| 方法一：通过ScaleTop，ScaleLeft，ScaleWidth和ScaleHeight属性实现。

"方法二：采用Scale方法..."

| 方法二：采用Scale方法来设置坐标系：
| [对象.]Scale [(xLeft,yTop)－(xRight,yBotton)]

幻灯片236

10.2 绘图属性

| 10.2.1 当前坐标
| CurrentX，CurrentY属性给出窗体或图形框或打印机在绘图时的当前坐标。
| 这两个属性在设计阶段不能使用。

"窗体或图形框或打印机的DrawStyle..."

| 窗体或图形框或打印机的DrawStyle属性给出这些对象上所画线的形状。

"Visual Basic 默认采用对象..."

| Visual Basic 默认采用对象的前景色(ForeColor属性)绘图，也可以通过以下颜色函数指定色彩。
| 1. RGB(红,绿,蓝)函数 红、绿、蓝三基色使用0—255之间的整数。
| 2. QBColor(颜色码) 颜色码使用0—15之间的整数

10.3.2 Image(图像框)

| 图像框比图形框占用更少的内存快。图像框内不能保存其他控件。
| Stretch属性=False，图像框可自动改变大小以适应其中的图形。
| Stretch属性=True， 图形可自动调整尺寸以适应图像框的大小。
| 例10.5 图形框Autosize属性与图像框的Stretch属性对加载图形的影响。
| SavePicture对象名.属性,文件名
| 把绘制或装在窗体、图形框和图像框内的图形保存到Bmp格式文件内。
| 10.3.3 Line(画线工具)
| 10.3.4 Shape(形状)

10.4 图形方法

| 10.4.1 Line方法
| 画直线或矩形： [对象.] Line [ [Step] (x1,y1)]－(x2,y2)[,颜色][,B[F]]
| 其中：对象可以是窗体或图形框。
| (x1,y1) ，(x2,y2)为线段的起终点坐标或矩形的左上角右下坐标。
| 关键字B表示画矩形，关键字F表示用画矩形的颜色来填充矩形。
| 例10.8 用Line方法在一个窗体上画坐标轴与坐标刻度。
| 例10.9 用Line方法在一个窗体上画随机射线。
| 10.4.2 Circle方法
| Circle方法
| 用于画圆、
| 椭圆、圆弧
| 和扇形。

10.4.3 Pset方法

10.5 应用

| 10.5.1 几何图形绘制
| 利用Line方法和Circle方法及DrawWidth、DrawStyle和DrawMode属性。
| 例10.12 用Circle方法在窗体上绘制由圆环构成的艺术图案。
| 算法：等分半径为r的圆周为n份，以等分点为圆心，半径r1绘制n个圆。
| 例10.13 用Line方法绘制函数f(x)=x2在区间[a,b]之间积分面积图。
| 为了能绘制任意区间[a,b]上函数f(x) 积分面积图，可在窗体上放置一个图形框和两个文本框。文本框用于指定积分上下限的值，图形框用于绘图。根据区间[a,b]的值设置图形框的左上角坐标为（a-1，b´b+1），右下角坐标为（b+1，-1）。将区间[a,b]等分为n 份，在每一等分点i上，用Line方法连线到（i,i*i）。

幻灯片244

"10.5.4 图形处理..."

| 10.5.4 图形处理技术
| 1. 操作象素
| 通过PaintPicture方法访问内置在操作系统中的BitBlt服务程序。
| dpic.PaintPicture spic,dx,dy,dw,dh,sx,sy,sw,sh,rop
| 其中：
| 参数dpic为目标图形对象，spic为传送源，
| dx,dy是传送目标矩形区域左上角坐标（目标控件内任一位置）。
| dw,dh是目标形矩形区域的宽和高。
| sx,sy是要传送图形矩形区域左上角坐标。
| sw,sh是要传送图形矩形区域的大小。
| rop指定传送的象素与目标中现有的象素组合模式（如表所示）。

幻灯片246
幻灯片247
幻灯片248
幻灯片249

"API文本浏览器应用程序"

| API文本浏览器应用程序

幻灯片251
幻灯片252
幻灯片253

第十一章 Visual Basic与数据库
（1学时）

| 11.1 数据库概念
| 11.2 数据库管理器
| 11.3 数据控件
| *11.4 ADO数据控件
| *11.5 结构化查询语言(SQL)
| *11.6 报表制作
| 11.7 错误处理

11.1 数据库概念

"关系型数据库模型"

| 关系型数据库模型

幻灯片257
幻灯片258

"在VB中数据库内的表格..."

| 在VB中数据库内的表格不允许直接访问，而只能通过记录集对象进行记录的操作和浏览，因此，记录集是一种浏览数据库的工具。

11.2 数据库管理器

| VB的数据库管理器(Visdata.exe)可用于管理数据库。在VB开发环境内单击外接程序菜单中的可视化数据管理器命令可打开可视数据管理器。

幻灯片261
11.3 数据控件
幻灯片263
幻灯片264
幻灯片265
幻灯片266
幻灯片267
幻灯片268
幻灯片269
幻灯片270
11.4 ADO数据控件
幻灯片272
幻灯片273
幻灯片274
幻灯片275
11.4.3 ADO控件上绑定控件的使用
11.4.4 使用数据窗体向导
幻灯片278
幻灯片279
幻灯片280
幻灯片281
幻灯片282

11.5 结构化查询语言(SQL)

| 11.5.1 结构化查询语言

幻灯片284

11.5.2 使用SELECT语句查询

| 1.使用SELECT语句
| 从数据库中的获取数据称为查询数据库，查询数据库通过使用SELECT语句。常见的SELECT语句形式为：
| Select 字段表 From 表名 Where 查询条件 Group By 分组字段 Order By 字段[Asc|Desc]
| 可以在设计或代码中对数据控件的RecordSource属性设置SQL语句，也可将SQL语句赋予对象变量。
| 在建立SQL语句时，如果需要通过变量构造条件，则需要在应用程序中将变量连接到SELECT语句。例如：
| "Select * From 基本情况 Where 专业 =' " & Text1 & " ' "
| 例11.8将例11.4中的查找功能改用SQL语句处理。
| 例11.9用SQL语句从两个数据表中选择数据构成记录集。
| 例11.10用SQL指令按专业统计Student.mdb数据库各专业的人数。

"例11.11在ADO数据..."

| 例11.11在ADO数据控件上使用SQL语句。将例11.9中的Data控件改用ADO数据控件，用SQL语句从Student.mdb数据库的两个数据表中选择数据构成记录集。
| 例11.12设计一个窗体，计算Student.mdb数据库内学生成绩表中每个学生的平均成绩，产生姓名、平均成绩和最低成绩三项数据，按平均成绩升序排列数据，并用该数据作图。
| *2. 使用UPDATE语句修改记录
| UPDATE创建一个更新查询来按照某个条件修改特定表中的字段值。其语法如下：
| UPDATE [表集合] SET [表达式] WHERE [条件]
| 例11.12a 本例把学生平均成绩字段的值增加了10%，并刷新网格。
| *3. 使用DELETE语句查询 可以创建删除查询来删除FROM子句中列出的、满足WHERE子句的一个或多个表中的记录，其语法所示如下：
| DELETE [表字段] FROM [表集合] WHERE [条件]
| 例11.12b删除例11.12a所产生temp表中平均成绩<80的全部记录，并刷新网格。

*11.5.3 使用对象变量访问数据库

| DAO对象定义了一个可编程的对象集合。可按下列方法定义数据库对象和记录集对象，不必在窗体上放置数据控件

幻灯片288
*11.5.4 ADO对象
11.6 报 表 制 作
幻灯片291
11.7 错误处理
幻灯片293
幻灯片294
幻灯片295
幻灯片296
幻灯片297