vb
计算机等级考试二级VB基础教程 1.1 Visual Basic 概述 VB 在创建和编译工程时要产生许多文件,分为:设计时文件、杂项开发文件和运行时文件。 1.2 VB 6.0 的集成开发环境简介 VB 集成开发环境 (IDE——Integrated DevelopingEnvironment ) 由以下元素组成: 1. 标题栏 用于显示正在开发或调试的工程名和系统的工作状态(设计态、运行态、中止态)。 2. 菜单栏 用于显示所使用的 Visual Basic 命令。VB6.0标准菜单包括: 3. 工具栏 在编程环境下用于快速访问常用命令。缺省情况下,启动 VB后显示“标准”工具栏,附加的编辑、窗体设计和调试的工具 栏可以从“视图”菜单上的“工具栏”命令中移进或移出。 4. 窗体设计器 用来设计应用程序的界面。启动VB后,窗体设计器中自动出现一个名为Form1的空白窗体,可以在该窗体中添加控件、图形和图片等来创建所希望的外观,窗体的外观设计好后,从菜单中选择“文件”→“保存窗体”→在保存对话框中给出合适的文件名(注意扩展名),并选择所需的保存位置→确定。需要再设计另一个窗体时,单击工具栏上的“添加窗体”按钮即可。 5. 控件(工具)箱 由一组控件按钮组成,用于设计时在窗体中放置控件。除了缺省的工具箱布局之外,还可以通过从上下文菜单中选定“添加选项卡”并在结果选项卡中添加控件来创建自定义布局。 6. 弹出式(上下文)菜单 在要使用的对象上单击鼠标右键即可打开快捷菜单,其上会出现与当前对象相关的经常执行的操作,以加快操作速度。 用于浏览工程中所包含的窗体和模块,还可以从中查看代码、查看对象。 8. 属性窗口 是VB中一个比较复杂的窗口,其中列出了对选定窗体和控件的属性设置值。VB中正是通过改变属性来改变对象的特征,如大小、标题或颜色。 9. 对象浏览器 列出工程中有效的对象,并提供在编码中漫游的快速方法。可以使用“对象浏览器”浏览在 VB中的对象和其它应用程序,查看对那些对象有效的方法和属性,并将代码过程粘贴进自己的应用程序。 10. 对象浏览器 右击窗体中的对象、从工程管理器中点“查看代码”按钮。 11. 窗体布局窗口 Form Layout window允许使用表示屏幕的小图象来布置应用程序中各窗体的位置。 12. 立即、本地和监视窗口这些附加窗口是为调试应用程序提供的,它们只在 IDE 之中运行应用程序时才有效。 1.3 面向对象程序设计的基本概念 1.基本术语 (1) 对象和对象类 对象是代码和数据的组合,可以作为一个单位来处理。对象可以是应用程序的一部分,比如可以是控件或窗体。整个应用程序也是一个对象。 类具有继承性、封装性、多态性、抽象性。 (2) 属性 属性是对对象特性的描述,VB为每一类对象都规定了若干属性,设计中可以改变具体对象的属性值。比如窗体的背景颜色、高度与宽度。 (3) 事件(Event) 事件是发生在对象上的动作。事件的发生不是随意的,某些事件仅发生在某些对象上。 在VB中事件的调用形式是: Private Sub对象名_事件名 (事件内容) End Sub 1.4 利用VB开发应用程序的一般步骤 2.1 VB用户界面设计基础
3)所有对象都有Name,但不一定都有Caption; (4)Height,Width属性 1.窗体的属性 1)在设计态通过属性窗口设置 2.窗体的常用方法 (1)Hide方法 用以隐藏 MDIForm 或 Form 对象,但不能使其卸载。 说明: 隐藏窗体时,它就从屏幕上被删除,并将其 Visible 属性设置为 False。 用户将无法访问隐藏窗体上的控件,但是对于运行中的 Visual Basic 应用程序,或对于通过 DDE 与该应用程序通讯的进程及对于 Timer 控件的事件,隐藏窗体的控件仍然是可用的。 用以移动 MDIForm、Form 或控件。 说明:只有 left 参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定 left 和 top 参数,则无法指定 width 参数。任何没有指定的尾部的参数则保持不变。 (3)Print 方法 在 Immediate 窗口中显示文本。
outputlist 参数具有以下语法和部分: {Spc(n) | Tab(n)} expression charpos 说明: 可以用空白或分号来分隔多个表达式。 注意: 因为 Print 方法是按照字符比例进行打印,所以字符数与字符所占据的宽度固定的列的数目无关。例如,像 “W” 这样的宽字母占据的宽度超过一固定列宽,而像 "i" 这样的窄字母占据的宽度则较小。考虑到要使用比平均字符更宽的空间,表列一定要留有足够余地。另外,也可以使用固定间距的字体(像 Courier 字体)来确保每一字符均只占一列。 (4)PrintFrom方法 用以将 Form 对象的图象逐位发送给打印机。 (5) Refresh方法 强制全部重绘一个窗体或控件。 通常,如果没有事件发生,窗体或控件的绘制是自动处理的。但是,有些情况下希望窗体或控件立即更新。例如,如果使用文件列表框、目录列表框或者驱动器列表框显示当前的目录结构状态,当目录结构发生变化时可以使用 Refresh 更新列表。 可以在 Data 控件上使用 Refresh 方法来打开或重新打开数据库(如果 DatabaseName,ReadOnly,Exclusive 或 Connect 属性的设置值发生改变),并能重建控件的 Recordset 属性内的 dynaset。 (6)Show方法 用以显示 MDIForm 或 Form 对象。 说明: 下面的例子说明如何使用ownerform 参数: (7)Cls方法 清除运行时 Form 或 PictureBox 所生成的图形和文本。 (2) Click事件,Dblclick事件 (3)Activate (活动事件)与Deactivate(非活动事件) (4)Resize事件 4.窗体的控制 (1) 装入或卸出窗体 FormName变量是要装入或卸出的窗体名。 Load语句只是把窗体装入内存,并不显示出来,要显示窗体可以使用窗体的Show方法。 (2) 显示或隐藏窗体 FormName变量是窗体名,可选变元mode为0(缺省值)时窗体为非模态,为1时窗体为模态。模态窗体完全占有应用程序控制权,不允许切换到别的应用程序,除非关闭!而非模态窗体则反之。 (3)END语句 END语句的功能是终止应用程序的执行,并从内存卸在所有窗体。 1.窗体的属性 (1)设置属性的方法 1)在设计态通过属性窗口设置 2.窗体的常用方法 (1)Hide方法 用以隐藏 MDIForm 或 Form 对象,但不能使其卸载。 说明: 隐藏窗体时,它就从屏幕上被删除,并将其 Visible 属性设置为 False。 用户将无法访问隐藏窗体上的控件,但是对于运行中的 Visual Basic 应用程序,或对于通过 DDE 与该应用程序通讯的进程及对于 Timer 控件的事件,隐藏窗体的控件仍然是可用的。 用以移动 MDIForm、Form 或控件。 说明:只有 left 参数是必须的。但是,要指定任何其它的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定 left 和 top 参数,则无法指定 width 参数。任何没有指定的尾部的参数则保持不变。 (3)Print 方法 在 Immediate 窗口中显示文本。 outputlist 参数具有以下语法和部分: {Spc(n) | Tab(n)} expression charpos 说明: 可以用空白或分号来分隔多个表达式。 注意: 因为 Print 方法是按照字符比例进行打印,所以字符数与字符所占据的宽度固定的列的数目无关。例如,像 “W” 这样的宽字母占据的宽度超过一固定列宽,而像 "i" 这样的窄字母占据的宽度则较小。考虑到要使用比平均字符更宽的空间,表列一定要留有足够余地。另外,也可以使用固定间距的字体(像 Courier 字体)来确保每一字符均只占一列。 (4)PrintFrom方法 用以将 Form 对象的图象逐位发送给打印机。 2.3 控件 (1)常用控件的属性、方法和事件 ComboBox 组合框(将列表框和文本框结合在一起) Style属性 外观属性:取0时,系统创建一个带下拉式列表框的组合框;为1时,系统创建一个由文本框和列表框直接组合在一起的简单组合框,可以从列表框中选择,也可以直接在文本框中输入;为2时,系统创建一个没有文本框的下拉式列表框,单击列表框上的按钮才显示文本框,用户不能在文本框中输入,只能在列表框中选择。 Text 属性 其值为用户从列表框中选定的文本或直接输入的文本。 AddItem方法 添加列表项,使用格式: [ 对象名.] AddItem<列表项文本>[,插入位置序号] 若不指定位置,则插入到列表末尾。 Clear方法 删除列表所有项目 RemoveItem 方法 删除列表项,使用格式: [ 对象名 .] RemoveItem 删除项序号 CommandButton 命令按钮 Cancel属性 取消属性,它为True时,按〖ESC〗即等于单击此按钮。 Default属性 缺省属性,它为True时,按回车键即等于单击此按钮。 Timer计时器 Interval属性 两次调用Timer事件的事件间隔,用于创建动态效果。 Frame 框架 CheckBox 复选框 OptionButton选项按钮 Alignment属性 决定它们的对齐方式,0=左对齐,1=右对齐。 Value属性 决定它们是否被选中的属性 2.常用控件的使用辨析 (1)文本框和标签的区别: 文本框通常用于向计算机输入信息,而标签通常用于输出信息。文本框是一个十分重要的控件,因为由复选框和选项按钮向程序输入的信息毕竟只有少数的几条信息而已。标签和文本框的区别很小,标签可以看成是一个在运行时不能修改正文的文本框,因此标签主要用于输出信息。 (2) Label的AutoSize属性和WordWrap属性 为了使标签具有垂直伸展和字换行处理,必须设置它的AutoSize属性和WordWrap属性同时为True。 (3) PictureBox和Image的Stretch属性和AutoSize属性 Image只有Stretch属性,而PictureBox只有AutoSize属性。 (4)Frame 框架、CheckBox 复选框、OptionButton选项按钮的区别: 复选框和选项按钮用于向程序输入信息,框架用来对复选框和选项按钮进行分组。 2.4 定制菜单 1.菜单概述 Windows中的菜单一般由菜单条、菜单、菜单项、子菜单、弹出式菜单组成。 2.普通菜单的设计 (1)给菜单命名 菜单标题和菜单命令也有Caption和Name属性,设置了这两个属性就等于创建了菜单。Name是一个抽象名称,Caption是屏幕上可见的,可在Caption里加入 “&” 来设置热键。 (2)增加和删除菜单 在Menu Editor中部有三个命令钮分别是下一个、插入、删除。插入可用来增加新的菜单。在这三个键下面的Caption列表框里选中菜单项(这时它的底色就变成深蓝色),单击插入键,Visual Basic将上一个增亮菜单下推并增亮一空行,就可以输入新菜单名和标题了。删除键可用来删掉菜单。选中要删掉的菜单,单击Delete键就可以删掉它了。 (3)移动菜单标题 有四种情况:向上移动,向下移动,向左缩排,向右缩排,选中某一菜单标题,安上下箭头,则这个菜单将上下移动到你喜欢的位置上,这也决定了它在界面中的位置。如果按左右箭头,情况则有所不同。由于菜单是分级的,所以,如果它没有缩排,则它是一个菜单标题;如果它缩排一次,那么它将变成一个菜单命令;如果缩排两次,那么它将成为一个子菜单命令。VB里可以总共设计四层子菜单。 (4)设置分离条 分离条是指在菜单中将命令分组的线,VB将分离条也看成一个菜单项,它也需要Caption和Name属性,而且也有其它属性,分离条与菜单项的区别是分离条的Caption属性必须是连字号即减号。也就是,当设置了一个Caption属性为 “-” 的菜单项时,实际上就设置了一个分离条,分离条的名字可以是barFile1之类,以表明分离条的位置。 (5) 菜单的各种简单属性 在菜单编辑器里有许多确认框和一些文本框及一个下拉式的列表框,这些决定了菜单的各种属性。 1) Checked 复选属性 这个属性值设置为真,将在菜单命令左边产生一个打勾的确认标志。 2) Enabled有效属性 各种各样的用户会产生千奇百怪的操作,在许多Edit菜单里都会有不同形式的让菜单命令模糊的情况。Enabled属性为真,则菜单命令是清晰的,Enabled属性为假,则菜单命令是模糊的,这时用户就不能选中这个菜单项了。 3) Visible 可见属性 对暂时不用的菜单, 如果把Visible属性设为假,则菜单根本不会出现在屏幕上。这样做比把Enabled属性设为假显得更加干脆! 4) Index属性 可以生成菜单命令数组,用索引号区分开。例如向File菜单中添加一系列最近打开的文件名。添加菜单可用Load方法。以上属性可以在运行时设置,形成动态的菜单的情况。 例如: mnuUndo.Enabled = False mnuProperty.Visible = False 还可以改变Caption等属性。 mnuUndo.Caption = “Redo” 3. 生成弹出式菜单(或浮动菜单) 几乎每个Windows应用程序都提供弹出式菜单,用户可以右键单击窗体或控件取得这个菜单。弹出式菜单也属于普通菜单,只是不固定在窗体上,而是可以在任何地方显示。 弹出式菜单用PopupMenu方法调用。假设已经用菜单编辑器生成了名为mnuedit的菜单,则可以在MouseUp事件加入如下代码就可以生成弹出式菜单: If Button = 2 Then PopupMenu mnuedit 2.5设计状态条、工具栏、进程条等 1.创建状态条 选中状态条,按F4键进入属性窗口,双击(Custom)可以进入主要的设置窗口SBarCtrl属性窗口。 (1) 选择面板形状 在SBarCtrl属性窗口里选择General标签,在Style列表框里选择多面板(缺省形式)或单面板简单文本形式。 (2) 添加或删除状态条面板 在SBarCtrl属性窗口里选择Panels标签,单击Insert按钮添加一个面板,或单击Remove按钮删除一个面板。 (3) 在单面板里显示文本 在SBarCtrl属性窗口里选择General标签,在SimpleText框里输入想显示在状态条面板里的文本。用代码显示的方式是: StatusBar1.SimpleText = "Newstring to appear" (4) 在多面板里显示文本或图形 1). 在SBarCtrl属性窗口里选择Panels标签,用Index旁的按钮选择面板序号。 2). 在Text框里输入想显示在状态条面板里的文本。 3). 如果想加入图形,单击Browse按钮打开一个图形选择对话框,选择想加入的图形,然后单击打开按钮。 4). 最后按确定按钮。 5). 用代码显示的方式是:StatusBar1.Panels(x).Text ="New string to appear" 6). 编写代码 如果是一个单面板状态条,当用户单击状态条时,只需用下面的事件过程来响应: Private Sub StatusBar1_Click() End Sub Private Sub StatusBar1_PanelClick(ByValPanel As Panel) Select Case Panel.Index Case 1 'Code to follow if userclicks the first panel Case 2 'Code to follow if userclicks the second panel Case 3 'Code to follow if userclicks the third panel End Select End Sub 2.创建工具栏 (1)建立工具条 1).在工具箱里单击工具条图标,拖到窗体的任何位置,Visual Basic自动将ToolBar移到顶部。 2).按F4键打开属性窗口。 3).双击(Custom),打开ToolBar属性窗口。 4). 选择Buttons标签。 5). 单击Insert按钮,Visual Basic就会在你的工具条上显示一个空按钮,现在为你的每一个按钮重复这一步。 6). 单击确定按钮。 如果想把按钮分组,首先生成一个分隔的按钮,再在刚才提到的对话框里将这个按钮的Style属性改为3-Separator。 (2) 为工具条增加图画 1). 在Visual Basic工具箱里单击ImageList图标,并将它拖到窗体的任何位置(位置不重要,因为它总是不可见的)。 2). 按F4打开属性窗口。 3). 双击(Custom),打开ImageListCtrl属性窗口。 4). 选择Image标签。 5). 单击Insert Picture,在现在图形的对话框里选择想使用的位图或图标,然后单击打开按钮。为每个想添加图形的工具条按钮重复此步。 6). 单击确定按钮。 7). 单击工具条,按F4,双击(Custom),显示ToolBar属性对话框。 8). 选择General标签,在ImageList框里选择刚才添加的ImageList控件。 9). 选择Buttons标签,单击紧挨Index框的向左或向右箭头以选择一个按钮序号。出现在工具条最左边的按钮序号为1。 10). 在Image框里输入一个数,输入为1,则显示刚才ImageList控件里的第一个图形,输入为2,则显示刚才ImageList控件里的第二个图形。 11). 为每个按钮重复第10步。 12). 单击确定按钮,现在Visual Basic就会在工具条上显示精美的图形了。 2.6 Visual Basic的输入机制 2.7 Visual Basic的输出机制
2. Print方法,Cls方法,Tab函数 3.1 VB编码规则 1. 语言元素 VB的语言基础是BASIC语言,VB程序的语言元素主要由: 关键字(如: Dim、Print、Cls) 函数(如:Sin()、Cos()Sqr()) 表达式(如:Abs(-23.5)+45*20/3 ) 语句(如:X=X+5 、 IF……ELSE……END IF)等组成。 2. VB代码书写规则 (1) 程序中不区分字母的大小写,Ab 与AB等效; 1) 对于VB中的关键字,首字母被转换成大写,其余转换成小写 3. 语句书写规则 (1)在同一行上可以书写多行语句,语句间用冒号(:)分隔 4. 程序的注释方式 (1)整行注释一般以 Rem开头,也可以用撇号 '; 5. 保留行号和标号 VB源程序接受行号与标号,但不是必须的(早期的BASIC语言中必须用行号)。 3.2VB的语言基础 算术运算符两边的操作数应该是数值型,若是数字字符或逻辑型,则自动转换为数值类型后再运算。 (3)关系运算符 4.1 算法概论 1.算法的概念 算法:指用计算机解决某一问题的方法和步骤。 算法分类: 数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。 数值算法:用于解决一般数学解析方法难以解决的问题,如:求超越方程的根、求定积分、解微分方程等。 非数值算法:用于对非数值信息进行查找、排序等。 2.算法的特征 (1)确定性:指算法的每个步骤都应确切无误,没有歧义。 3.算法的评价 主要评价指标是:算法是否正确、运行的效率、占用系统资源的多少。 一般常用流程框图来描述算法。 5.基本算法结构 “结构化程序设计方法”规定算法有三种基本结构: 顺序结构、选择结构和循环结构 6.算法示例 (1)欧几里德算法——求两个自然数的最大公约数 (2)顺序查找算法—— 在N个字符串集合中,查找有无特定的字符串存在 4.2顺序结构 1.赋值语句 赋值语句是任何程序设计中最基本的语句,赋值语句都时顺序执行的。赋值语句的形式为: 变量名 = 表达式 它的作用是计算右边表达式的值,然后赋给左边的变量,表达式的类型应该与变量名的类型一致。 2. 使用说明 (1)当表达式为数值型而与变量精度不同时,强制转换成左边变量的精度; 4.3 选择结构(或称分支结构) (1)If……Then语句(单分支结构 F) 2)If <表达式> Then <语句> 说明:表达式一般为关系表达式、逻辑表达式,也可以为算术表达式,非0为True,0为False; 语句块可以是一句或多句,若用2)表示,则只能是一句语句,若多句,语句间需用冒号分隔,而且必须在一行上书写。 例:已知两个数x和y,比较它们的大小,使得 x大于y: 方法一: if x<ythen 方法二: if x<ythen t=x : x=y : y=t 注意:将两个变量中的数进行交换时,必须借助于第三个变量才能实现。 2) If <表达式> Then <语句1> Else <语句2> (3)If……Then……ElseIf语句(多分支结构) 注意 : 1)不管有几个分支,程序执行了一个分支后,其余分支不再执行; If语句的嵌套是指if 或else后面的语句块中又包含If语句。语句形式: If <表达式1> Then 注意: Select Case 变量或表达式 语句块n+1] 2)表达式列表I 可以是表达式、一组用逗号分隔的枚举值、表达式1 to 表达式2、Is关系运算符表达式;如:case 1 to 10 、 case"a","w","e","t" 、 case 2,4,6,8,is>10 3)并不是所有的多分支结构都可以用情况语句代替的。 3. 条件函数 (1)if函数 函数形式: Iif(表达式,当条件为True时的值,当条件为False时的值.例:求X、Y中大的数,并放入变量Tmax中: Tmax=Iif(X>Y,X,Y) (2)Choose函数 函数形式:Choose(整数表达式,选项列表) 4.4循环结构 循环是在指定的条件下多次重复执行一组语句。VB中提供了两种类型的循环语句: 计数循环语句和条件型循环语句 1.For循环语句(知道循环次数的计数型循环) 语句形式: For循环变量 = 初值To 终值[ Step步长]
2.Do……Loop循环(不知道循环次数的条件型循环) 是用于控制循环次数未知的循环结构,语法形式有两种: 形式1:Do While …… Loop 形式2:Do …… Loop While 说明: 3. 循环的嵌套 指在循环体内又包含了一个完整的循环结构。循环嵌套对For 循环和Do……Loop循环均适用。 4.5其它辅助控制语句 1.Go To 语句 语句形式: Go To 标号 | 行号 说明:(1)Go To语句只能转移到同一过程的标号或行号处;标号是一个字符系列,首字符必须为字母,与大小写无关,任何转移到的标号后面必须有冒号: ;行号是一个数字序列; 2.Exit语句 用于退出某控制结构的执行,VB的Exit语句有多种形式,如: 3.End 语句 独立的End语句用于结束一个程序的执行,可以放在任何事件过程中,形式为:End 4.With语句 它的作用是可以对某个对象执行一系列的语句,而不用重复指出对象的名称。但不能用一个With语句设置多个不同的对象。属性前面需要带点号“· ”。 语句形式如下:With对象名 例:Withform1 4.6程序调试 1.VB的调试工具 (1)设置自动语法检查 (2)利用VB调试工具栏 2. VB的三种模式 (1)设计模式 (2)运行模式 (3)中断模式 3. 常见错误 (1) 编辑时错误 (2)编译时错误 (3)运行时错误 (4)逻辑错误 4.程序调试方法 (1)进入/退出中断状态 (2) 利用调试窗口 2)本地窗口 3)监视窗口 (3)插入断点和逐句跟踪 可在中断模式下或设计模式时设置或删除断点,在代码窗口选择怀疑存在问题的地方作为断点,按下F9键,则程序运行到断点处即停下,进入中断模式,在此之前所关心的变量、属性、表达式的值都可以看到。 5.1 数组的概念 1.引例 求100个学生的平均成绩及超过平均成绩的人数。 如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(1 To 100)。 2.基本概念 数组:是同类型变量的一个有序的集合。 如:A(1 To 100),表示一个包含100个数组元素的名为A的数组。 数组元素: 即数组中的变量。用下标表示数组中的各个元素。 表示方法:数组名(P1,P2,……) 其中P1、P2表示元素在数组中的排列位置,称为“下标”。 如:A(3,2)代表二维数组A中第3行第2列上的那个元素。 数组维数: 由数组元素中下标的个数决定,一个下标表示一维数组,二个下标表示二维数组。 VB中有一维数组、二维数组、……最多60维数组。 下标: 下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。 下标的取值范围是:下界 To 上界 ,缺省下界时,系统默认取0。 3.数组声明 数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。 声明内容:数组名、类型、维数、数组大小。 一般情况下,数组中各元素类型必须相同,但若数组为Variant时,可包含不同类型的数据。 静态数组:声明时确定了大小的数组。 动态数组: 声明时没有给定数组大小(省略了括号中的下标),使用时需要用ReDim语句重新指出其大小。 使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时才分配存储单元,而静态数组是在程序编译时分配存储单元。 5.3动态数组及声明 1. 动态数组的建立与声明 建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是: 例: Dim D() As Single 2.注意事项 (1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量。 1. 给数组元素赋初值 (1) 利用循环结构 例:Dim iA(1 To 10) As Integer (2) 利用Array函数 例:Dim a As Variant,b As Variant,i% 2.数组的输入 (1) 通过InputBox函数输入适合输入少量数据。 例:Dim sB(3,4) As singer (2) 通过文本框控件输入 对大批量的数据输入,采用文本框和函数split()join()进行处理,效率更高。 在VB6.0中可以直接将一个数组的值赋值给另一个数组: 注意:(1)赋值号两边的数据类型必须一致; 4.数组的输出 用For……Next循环语句输出。 5.求数组中最大元素和所在下标及各元素之和 求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一比较,若有比其大的就替换,同时替换下标。 6.交换数组中各元素 交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推。 5.5控件数组 1.控件数组的概念 控件数组是由一组相同类型的控件组成的,它们共用一个控件名,具有相同的数组。控件数组适用于若干个控件执行的操作相似的场合,控件组共享同样的事件过程。控件数组通过索引号(属性中的Index)来标识各控件,第一个下标是0 。如:Text1(0)、Text1(1)、Text1(2)、Text1(3)…… 2.控件数组的建立 (1)在设计时建立 (2)运行时添加控件数组 方法:1)在窗体上画出某控件,设置该控件的Index值为0,表示该控件为数组。 使用示例:建立一个类似国际象棋的棋盘,要求黑白交替,运行时单击某个棋格,会改变颜色并显示其序号。 5.6自定义数据类型 1. 自定义数据类型的定义 6.1VB的过程设计及子过程(Sub)的定义与调用 1.什么是过程 在程序设计中,为各个相对独立的功能模块所编写的一段程序称之为过程。 2.VB中的自定义过程分类 (1)以“Sub”保留字开始的子程序过程 (包括事件过程和通用过程),不返回值; (2)以“Function” 保留字开始的函数过程,返回一个值; (3)以“Property” 保留字开始的属性过程,可以返回和设置窗体、标准模块以及类模块的属性值,也可以设置对象的值。 3. 事件过程 (1)窗体事件过程 语法:Private Sub Form_事件名([参数列表]) [局部变量和常数声明] 语句块 End Sub 注意: 1)窗体事件过程名由Form_事件名组成,多文档窗体用MDIForm_事件名; 2)每个窗体事件过程名前都有一个Private的前缀,表示该事件过程不能在它自己的窗体模块之外被调用; 3)事件过程有无参数,完全由VB提供的具体事件本身决定,用户不可以随意添加。 (2)控件事件过程 语法:Private Sub 控件名_事件名([参数列表]) [局部变量和常数声明] 语句块 End Sub 注意:其中的控件名必须与窗体中某控件相匹配,否则VB将认为它是一个通用过程。 (3)建立事件过程的方法 1)打开代码编辑器窗口(两种方法:双击对象或从工程管理器中单击“查看代码”按钮) 2)在代码编辑器窗口中,选择所需要的“对象”和“事件过程” 3)在Private Sub …… End Sub之间键入代码 4)保存工程和窗体 (4)事件过程的调用 事件过程由一个发生在VB中的事件来自动调用或者由同一模块中的其他过程显示调用。 2.通用过程 通用过程是一个必须从另一个过程显示调用的程序段,通用过程有助于将复杂的应用程序分解成多个易于管理的逻辑单元,使应用程序更简洁、更易于维护。 通用过程分为公有(Public)过程和私有( Private)过程两种,公有过程可以被应用程序中的任一过程调用,而私有过程只能被同一模块中的过程调用。 (1)定义方法: [ Private | Public ][Static]Sub 过程名([参数列表]) [局部变量和常数声明]‘用Dim 或Static声明 语句块 [Exit Sub] 语句块 End Sub 注意: 1)缺省[ Private | Public ]时,系统默认为 Public ; 2)Static 表示过程中的局部变量为“静态”变量; 3)过程名的命名规则与变量命名规则相同,在同一个模块中,同一符号名不得既用作Sub过程名,又用作Function过程名。 4)参数列表中的参数称为形式参数,它可以是变量名或数组名,只能是简单变量,不能是常量、数组元素、表达式;若有多个参数时,各参数之间用逗号分隔,形参没有具体的值。VB的过程可以没有参数,但一对圆括号不可以省略。不含参数的过程称为无参过程。 形参格式为: [ ByVal ] 变量名[()] [As数据类型] 式中: 变量名[()]:变量名为合法的VB变量名或数组名,无括号表示变量,有括号表示数组。 ByVal :表明其后的形参是按值传递参数(传值参数 Passed By Value),若缺省或用ByRef,则表明参数是按地址传递的(传址参数)或称“引用”(Passed By Reference)。 As:数据类型:缺省表明该形参是变体型变量,若形参变量的类型声明为String,则只能是不定长的。而在调用该过程时,对应的实在参数可以是定长的字符串或字符串数组,若形参是数组则无限制。 5)Sub 过程不能嵌套定义,但可以嵌套调用。 6)End Sub 标志该过程的结束,系统返回并调用该过程语句的下一条语句。 7) 过程中可以用Exit Sub提前结束过程,并返回到下调用该过程语句的下一条语句。 (2)建立Sub过程的方法 方法一: 1)打开代码编辑器窗口 2)选择“工具”菜单中的“添加过程” 3)从对话框中输入过程名,并选择类型和范围 4)在新创建的过程中输入内容 方法二: 1)在代码编辑器窗口的对象中选择“通用”,在文本编辑区输入 Private Sub 过程名 2)按回车键,即可创建一个Sub过程样板 3)在新创建的过程中输入内容 3.Sub子过程的调用 (1) 用Call语句调用Sub过程 语法:Call 过程名(实在参数表) 实在参数的个数、类型和顺序,应该与被调用过程的形式参数相匹配,有多个参数时,用逗号分隔。 (2)把过程名作为一个语句来用 语法:过程名 [实参1[,实参2……]] 它与(1)的不同点是:去掉了关键字和实参列表的括号 如上例中可以改成:area a,b,c,w 6.3参数的传递 1.形参与实参的概念 形参:指出现在Sub 和Function过程形参表中的变量名、数组名,过程被调用前,没有分配内存,其作用是说明自变量的类型和形态以及在过程中的角色。形参可以是: 1)除定长字符串变量之外的合法变量名; 2)后面跟()括号的数组名。 实参:是在调用Sub 和Function过程时,传送给相应过程的变量名、数组名、常数或表达式。在过程调用传递参数时,形参与实参是按位置结合的,形参表和实参表中对应的变量名可以不必相同,但位置必须对应起来。 形参与实参的关系:形参如同公式中的符号,实参就是符号具体的值;调用过程:即实现形参与实参的结合,也就是把值代入公式进行计算。 2. 按值传递参数(定义时加ByVal) 按值传递参数(Passed By Value)时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变。 3.按地址传递参数(定义时没有修饰词或带关键字ByRef) 按地址传递参数时,把实参变量的地址传送给被调用过程,形参和实参共用内存的同一地址。在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变。如果实参是一个常数或表达式,VB会按“传值”方式来处理。 4.数组参数 VB允许把数组作为形参出现在形参表中,语法: 形参数组名() [As 数据类型] 形参数组只能按地址传递参数,对应的实参也必须是数组,且数据类型相同。调用过程时,把要传递的数组名放在实参表中,数组名后面不跟圆括号。在过程中不可以用Dim语句对形参数组进行声明,否则会产生“重复声明”的错误。但在使用动态数组时,可以用ReDim语句改变形参数组的维界,重新定义数组的大小。 VB中可以向过程传递对象,在形参表中,把形参变量的类型声明为“Control”,可以向过程传递控件;若声明为“Form”,则可向过程传递窗体。对象的传递只能按地址传递。 6.4变量、过程的作用域 1. VB应用程序的组成: 3. 变量的作用域 4.静态变量 例:显示1到5个数。 6.5递归过程 1.递归的概念 通俗的讲,用自身的结构来描述自身就称为“递归”。如对阶乘运算的定义就是递归的: n!=n(n-1)! (n-1)!=(n-1)(n-2)! 2.递归子过程和递归函数 VB 允许一个自定义子过程或函数过程在过程体的内部调用自己,这样的子过程或函数就叫递归子过程和递归函数。递归过程包含了递推和回归两个过程。构成递归的条件是: (1)递归结束条件和结束时的值 (2)能用递归形式表示,并且递归向结束条件发展。 例:编制程序求fac(n)=n!的函数 3.注意事项 (1)递归算法设计简单,但消耗的上机时间和占据的内存空间比非递归大 (2) 设计一个正确的递归过程或函数过程必须具备两点: (3) 一般而言,递归函数过程对于计算阶乘、级数、指数运算有特殊效果。 7.1文件系统控件 1.文件系统控件种类 (1) 驱动器列表框(DriveListBox):用来显示当前机器上的所有盘符 (3) 文件列表框(FileListBox):用来显示当前文件夹下的所有文件名
7.2文件的读写 1. 文件的有关概念 记录:计算机处理数据的基本单位,由若干个相互关联的数据项组成。相当于表格中的一行。 文件:记录的集合,相当于一张表。 文件类型:顺序文件、随机文件、二进制文件。 访问模式:计算机访问文件的方式,VB中有顺序、随机、二进制三种访问模式。 2. 顺序访问模式 顺序访问模式的规则最简单,指读出或写入时,从第一条记录“顺序”地读到最后一条记录,不可以跳跃式访问。该模式专门用于处理文本文件,每一行文本相当于一条记录,每条记录可长可短,记录与记录之间用“换行符”来分隔。 顺序文件的写入步骤:打开、写入、关闭; 读出步骤:打开、读出、关闭。 (1)打开文件 打开文件的命令是Open,格式为: Open “文件名” For 模式 As [#] 文件号 [Len=记录长度] 说明: 1)文件名可以是字符串常量也可以是字符串变量 2)模式可以是下面之一: OutPut:打开一个文件,将对该文件进行写操作 Input:打开一个文件,将对该文件进行读操作 Append:打开一个文件,将在该文件末尾追加记录 3) 文件号是一个介于1-511之间的整数,打开一个文件时需要指定一个文件号,这个文件号就代表该文件,直到文件关闭后这个号才可以被其他文件所使用。可以利用FreeFile()函数获得下一个可以利用的文件号。 例: Open "D:sjaaa" ForOutput As #1 意思是:打开D:SJ下aaa文件供写入数据,文件号为#1 (2)写操作 将数据写入磁盘文件所用的命令是:Write# 或Print#。 1) Print #文件号,[输出列表] Print#1,Text1.Text '把文本框的内容一次性写入文件 Close #1 2)Write #文件号,[输出列表] 其中的输出列表一般指用逗号,分隔的数值或字符串表达式。Write #与Print #的功能基本相同,区别是Write #是以紧凑格式存放,在数据间插入逗号,并给字符串加上双引号。 结束各种读写操作后,必须将文件关闭,否则会造成数据丢失。关闭文件的命令是Close。 Close [#]文件号[,[#]文件号]…… 例: Close #1,#2,#3 (4) 读操作 1) Input #文件号,变量列表 作用:将从文件中读出的数据分别赋给指定的变量。 注意:与Write #配套才可以准确地读出。 2)LineInput #文件号,字符串变量 用于从文件中读出一行数据,并将读出的数据赋给指定的字符串变量,读出的数据中不包含回车符和换行符,可与Print #配套用。 3)Input$(读取的字符数,#文件号) 该函数可以读取指定数目的字符。 与读文件有关的两个函数: LOF():返回某文件的字节数 EOF():检查指针是否到达文件尾。 例:将一个文本文件读入文本框的三种方法。 3.随机访问模式 该模式要求文件中的每条记录的长度都是相同的,记录与记录之间不需要特殊的分隔符号。只要给出记录号,可以直接访问某一特定记录,其优点是存取速度快,更新容易。 (1) 打开与关闭 打开:Open “文件名” For Random As[#] 文件号 [Len=记录长度] 关闭:Close #文件号 注意:文件以随机方式打开后,可以同时进行写入和读出操作,但需要指明记录的长度,系统默认长度为128个字节。 (2)读与写 读操作:Get [#]文件号,[记录号],变量名 说明:Get命令是从磁盘文件中将一条由记录号指定的记录内容读入记录变量中;记录号是大于1的整数,表示对第几条记录进行操作,如果忽略不写,则表示当前记录的下一条记录。 写操作:Put [#]文件号,[记录号],变量名 说明:Put命令是将一个记录变量的内容,写入所打开的磁盘文件指定的记录位置;记录号是大于1的整数,表示写入的是第几条记录,如果忽略不写,则表示在当前记录后插入一条记录。 4. 二进制访问模式 打开:Open “文件名” For Binary As[#] 文件号 [Len=记录长度] 关闭:Close #文件号 该模式是最原始的文件类型,直接把二进制码存放在文件中,没有什么格式,以字节数来定位数据,允许程序按所需的任何方式组织和访问数据,也允许对文件中各字节数据进行存取和访问。 该模式与随机模式类似,其读写语句也是Get 和Put,区别是二进制模式的访问单位是字节,随机模式的访问单位是记录。在此模式中,可以把文件指针移到文件的任何地方,刚开始打开时,文件指针指向第一个字节,以后随文件处理命令的执行而一旦。文件一旦打开,就可以同时进行读写。 7.3常用的文件操作语句和函数 1.FileCopy语句 格式:FileCopy源文件名目标文件名 功能:复制一个文件 说明:不能复制一个已打开的文件 2.Kill语句 格式:Kill文件名 功能:删除文件 说明:文件名中可以使用通配符 *,? 3.Name语句 格式:Name旧文件名新文件名 功能:重新命名一个文件或目录 说明:不能使用通配符;具有移动文件功能;不能对已打开的文件进行重命名操作 4.ChDrive语句 格式:ChDrive驱动器 功能: 改变当前驱动器 说明:如果驱动器为空,则不变;如果驱动器中有多个字符,则只会使用首字母 5.MkDir语句 格式:MkDir文件夹名 功能:创建一个新的目录 6.ChDir语句 格式:ChDir文件夹名 功能:改变当前目录 说明:改变默认目录,但不改变默认驱动器。 7. RmDir语句 格式:RmDir文件夹名 功能:删除一个存在的目录 说明:不能删除一个含有文件的目录 8. CurDir()函数 格式: CurDir[(驱动器)] 功能:可以确定任何一个驱动器的当前目录。 说明:括号中的驱动器表示需要确定当前目录的驱动器,如果为空,返回当前驱动器的当前目录路径。 8.4进程条(ProgressBar)和滑块(Slider) 1. 进程条 作用:进程条控件用于监视操作完成的进度。 创建:在窗体上画出进程条控件,右击,选择属性,然后进行所需的外观设置。 主要属性:ProgressBar 控件有一个行程和一个当前位置。行程代表该操作的整个持续时间。当前位置则代表应用程序在完成该操作过程时的进度。Max 和 Min 属性设置了行程的界限。Value 属性则指明了在行程范围内的当前位置。 (1)Min属性代表进程条全空时的值,缺省时为0。 (2)Max属性代表进程条全空时的值,缺省时为100。 (3)Value属性代表进程条当前的值(但不出现在属性窗口中),它大于Min属性,小于Max属性。改变Value属性的值将改变进程条的进度显 示。 示例: Private Sub Command1_Click() 2.滑块 Slider 控件是包含滑块和可选择性刻度标记的窗口,在窗体上画出滑块控件,右击,选择属性,然后进行下列设置: (1)选择滑块的外观 1)方向属性决定滑块的方位,可以是垂直的或水平的滑块。 2)滑块样式属性决定滑块标记的样子。 3)滑块频率属性规定了沿着滑块的标记的间隔大小,缺省的状态是1,表明每个可能值都出现标记,如果把值设置为3,则每三个可能值出现一个标记。 (2)滑块的主要属性及事件 1)Min,Max属性 Min属性决定滑块最左端或最顶端所代表的值。Max属性决定滑块最右端或最下端所代表的值。 2)LargeChange,SmallChange属性 SmallChange决定在滑块两端的箭头钮上单击时改变的值。LargeChange决定在滑块上方或下方区域单击时改变的值。 3)Value属性 Value属性代表当前滑块所处位置的值,这个值由滑块的相对位置决定。 4)Change事件 当滑块位置发生变化时就引发了Change事件。 8.5排列显示(ListView)控件和分层显示(TreeView)控件 1.ListView 控件 象“资源管理器”的右侧一样,可使用四种不同视图显示项目。通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一: 大(标准)图标、小图标、 列表、 报表 View 属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。 ListView 控件包括 ListItem 和 ColumnHeader 对象。ListItem 对象定义 ListView 控件中项目的各种特性,如: 项目的简要描述、由 ImageList 控件提供的与项目一起出现的图标、附加的文本片段,称作子项目,它们与显示在报表视图中的 ListItem 对象关联。 可以使用 HideColumnHeaders 属性决定是否在 ListView 控件中显示列标头。列标头可以在设计时添加,也可以在运行时添加。设计时,使用 ListView“控件属性”对话框的“列首”选项卡添加列标头。运行时,使用 Add 方法添加 ColumnHeader 对象到 ColumnHeaders 集合中。 2.TreeView 控件 该控件象“资源管理器”的左侧一样,用于显示结点( Node) 对象的分层列表,每个 Node 对象均由一个标签和一个可选的位图组成。TreeView 一般用于显示文档标题、索引入口、磁盘上的文件和目录、或能被有效地分层显示的其它种类信息。 创建了 TreeView 控件之后,可以通过设置属性与调用方法对各 Node 对象进行操作,这些操作包括添加、删除、对齐和其它操作。可以编程展开与折回 Node 对象来显示或隐藏所有子节点。 TreeView 控件使用由 ImageList 属性指定的 ImageList 控件,来存储显示于 Node 对象的位图和图标。任何时刻,TreeView 控件只能使用一个 ImageList。这意味着,当 TreeView 控件的 Style 属性被设置成显示图像的样式时,TreeView 控件中每一项的旁边都有一个同样大小的图像。 8.6多媒体控件 1.多媒体控件 Multimedia MCI 控件管理媒体控制接口 (MCI) 设备上的多媒体文件的记录与回放。从概念上说,这种控件就是一组按钮,它被用来向诸如声卡、MIDI 序列发生器、CD-ROM 驱动器、视频 CD 播放器和视频磁带记录器及播放器等设备发出 MCI 命令。MCI 控件还支持 Windows (*.avi) 视频文件的回放。 在允许用户从 Multimedia MCI 控件选取按钮之前,应用程序必须先将 MCI 设备打开,并在 Multimedia MCI 控件上启用适当的按钮。在 Visual Basic 中,应将 MCI Open 命令放到 Form_Load 事件中。 2.媒体播放器控件 可以播放各种多媒体文件,主要属性有: (1) filename(待播放的文件名),可以在属性窗口中设置,也可以用代码实现。 (2) AutoStart(是否自动播放),默认是True。 (3) AutoRewind(是否自动循环),默认是False。 (4) PlayCount(文件播放遍数),默认是1。 8.7图象列表(ImageList)和图象组合框(ImageCombo) 1.图象列表 ImageList 控件是包含 ListImage 对象的集合,该集合中的每个对象都可以通过其索引或关键字被引用。ImageList 控件不能独立使用,只是作为一个便于向其它控件提供图象的资料中心。 ImageList 控件的作用象图像的储藏室,同时,它需要第二个控件显示所储存的图像。第二个控件可以是任何能显示图像 Picture 对象的控件,也可以是特别设计的、用于绑定 ImageList 控件的 Windows通用控件之一。这些控件包括ListView、ToolBar、TabStrip、Header、ImageCombo、和 TreeView 控件。为了与这些控件一同使用 ImageList,必须通过一个适当的属性将特定的 ImageList控件绑定到第二个控件。对于 ListView 控件,必须设置其 Icons 和 SmallIcons 属性为 ImageList 控件。对于 TreeView、TabStrip、ImageCombo、和 Toolbar 控件,必须设置 ImageList 属性为 ImageList 控件。 一旦 ImageList 与某个 Windows 通用控件相关联,就可以在过程中用 Index 属性或 Key 属性的值来引用 ListImage 对象。 当与 Windows 通用控件一起使用 ImageList 控件时,在将它绑定到第二个控件之前,按照希望的顺序将全部需要的图像插入到 ImageList。一旦 ImageList 被绑定到第二个控件 ,就不能再删除图像了,并且也不能将图像插入到 ListImages 集合中间。但是可以在集合的末尾添加图像。 2.图象组合框 ImageCombo 控件是标准Windows 组合框的允许绘图版本。控件列表部分中的每一项都可以有一幅指定的图片。它可以显示一个包含图片的项目列表,每一项可以有自己的图片,也可以对多个列表项使用相同的图片。 除了支持图片之外, ImageCombo 还提供了一个对象和基于集合的列表控件。控件列表部分的每一项是一个不同的 ComboItem 对象,而且列表中的所有项组合起来构成 ComboItems 集合。这就使它容易一项一项地指定诸如标记文本、ToolTip文本、关键字值以及缩进等级等属性。 8.8通用对话框控件 Windows应用程序里的Open对话框,Save As对话框在各个应用程序里看起来都是一样的,通用对话框控件就可以提供这些对话框的标准功能。 1.Open对话框及Save As对话框 打开Open对话框使用ShowOpen方法,打开Save As对话框使用ShowSave方法。 Private Sub mnuOpen_Click () 其中第三行决定了在文件格式类型栏里出现的文件类型。第五行需要一个自己的打开文件的过程,这个过程需要的参数就是通用对话框返回的文件名。通用对话框的CancelError属性设为True的话,用户单击Cancel按钮将产生一个错误信息程序,凭借这个信息程序可以检测到用户的放弃操作。 2.Color对话框 下面的过程可用用户选择的颜色作为窗体的底色。 Private Sub mnuColor_Click () 3.Fonts对话框 下面的过程可用字体对话框改变文本框的字体: Private Sub mnuFonts_Click () 代码的第三行出现了通用对话框的Flags属性决定了通用对话框的一些可选项,不过即使不赋值给Flags,代码也一样会按缺省的情况去执行的。 9.1数据库的基础知识 1.计算机数据管理技术的发展 第一阶段:人工管理阶段,特点是数据不长期保存,没有软件系统对数据进行管理,没有文件的概念,一组数据对应一个程序。 第二阶段:采用文件管理方式,特点是数据不再是程序的组成部分,而是有组织、有结构地构成文件形式,形成数据文件;文件管理系统是应用程序与数据文件的接口。 第三阶段:数据库管理方式,特点是对所有数据实行统一、集中、独立的管理,数据独立于程序存在,并可以提供给各类不同用户使用。
(1) 数据库(DataBase DB) 定义:是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。 特点: 具有最小的冗余度 实现数据共享 安全可靠,保密性能好 (2) 数据库管理系统(DataBase ManagementSystem DBMS) 定义:是操纵和管理数据库的系统软件。 功能:维护数据库、接收和完成用户程序或命令提出的访问数据库的各种请求。 数据语言:数据定义语言(DDL): 用来建立所需的数据库(即设计库结构) 关系型数据库使用的标准语言是结构化查询语言(Structured Query Language, SQL)。 定义; 以数据库应用为基础的计算机系统。 组成:一个完整的数据库系统由数据库、数据库管理系统、数据库管理员和应用程序组成。 数据库也可以这样划分其组成: 硬件:计算机硬件设备 分代 上述三个概念之间的联系:在数据库系统中通过数据库管理系统来建立和使用数据库。 3.数据模型 数据模型:即描述实体模型的数据。 关系模型的性质: 二维表的记录数随数据的增加而改变,但其字段数是相对固定的 关系型数据库的基本结构是一张二维表,包括以下概念: (1) 记录(Record):数据表中的每一行数据 (2) 字段(Field):数据表中的每一列,表头(第一行)的内容为字段名 (3) 数据表(Table):相关数据组成的二维表格 (4) 数据库(Database):相关数据表的集合 (5) 关系(Relation):相关表之间通过相关联的字段建立的联系。 (6) 索引(Index):指按表文件中某个关键字段或表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,目的是提供对数据的快速访问。索引不改变表中记录的物理顺序。 索引关键字(索引表达式):用来建立索引的一个字段或字段表达式。 数据库和数据表可以通过数据库管理系统软件来建立,如:Access,Visual FoxPro,SQL Server 、Sybase、 Oracle。在VB环境下可以直接建立Access数据库。 关系型数据表的特点: 5.查询的概念 查询(query):从相关数据表中选取符合特定要求的数据。 创建方法:可以通过查询生成器创建一个查询,也可以在SQL窗口直接用SELECT—SQL命令写出查询。 9.2数据库管理器 1.数据库管理器介绍 在VB中可以通过“外接程序”菜单中的“可视化数据管理器”调出“VisData”数据库管理器窗口。
数据库的基本操作: 创建数据表的主要步骤: 设计表结构 → 输入记录 → 建立索引 → 数据维护 (1)设计表结构 启动可视化数据管理器 → 在database窗口中右击,从菜单中选择“新表” → 在表结构窗口中输入表名→ 添加字段 → 确定字段名称和属性、有效性规则 → 建立索引 →生成表结构。 “添加字段”对话框各选项说明 (2)输入记录 在database窗口中选中表名并右击,从菜单中选择“打开” →在数据表窗口输入记录(注意窗口样式)→ 单击“新增”→ 在窗口中输入记录并“更新” →重复…… (3)维护记录 在database窗口中选中表名并右击,从菜单中选择“打开” →单击“编辑”/“删除”/“新增”,即可完成对记录的修改、删除、添加操作。 3.建立查询 建立查询就是在数据表中找到符合特定条件的记录并组成一张新表。 在database窗口中选中表名并右击,从菜单中选择“新查询” →在查询生成器中构造查询条件→单击“运行” →单击“保存”,给出查询结果文件名→“关闭”。 查询生成器说明 9.3数据控件 1. 数据控件的建立 2. 数据控件的属性 绑定控件、数据控件、数据库之间的关系: 绑定控件的属性: DataSource——通过一个有效的数据控件连接到一个数据库上。 DataField——将数据库中的有效字段连接到绑定控件上。 除了常规控件外,可以与Data数据控件绑定的控件有: 3.数据控件的事件 Validate事迹的 Action参数 4.数据控件的常用方法 5. 记录集的属性与方法 6. 利用数据控件对数据库进行增、删、改操作 9.4ADO数据控件 1. 什么是ADO? ADO(ActiveX Data Object)数据访问接口是微软处理数据库信息的最新技术,它是一种ActiveX对象,采用了OLE DB(动态连接与嵌入数据库)的数据访问模式,是数据访问对象DAO、远程数据对象RDO和开放式数据库互连ODBC三种方式的扩展。 要使用ADO对象必需先为当前工程引用ADO对象库,方法是: 执行“工程”菜单中的“引用”命令,在对话框中选中“Microsoft ActiveX DataObject 2.0 Library”。
(1)添加ADO数据控件 从“工程”菜单中选择“部件”命令,在对话框中选中“Microsoft ADO Data ControlS6.0(OLE DB)”,将其添加到工具箱,并在窗体上拖划出ADO数据控件。 (2)ADO数据控件的基本属性
1)先在窗体上放置一个ADO数据控件 2)在ADO属性窗口中单击ConnectionString属性右边的…按钮,从对话框中选择连接数据源的方式: 使用连接字符串——单击“生成”按钮,通过选项设置系统自动产生连接字符串 使用Data Link文件——通过一个连接文件来完成 使用ODBC数据资源名称——在下拉列表中选择某个创建好的数据源名称作为数据来源对远程数据库进行控制。 3)在ADO属性窗口中单击RecordSource属性右边的…按钮,在“命令类型”中选择2——adCmdTable,在“表或存储过程名称”中选择所需要的表。 以上2)、3)可以合并成一步:在ADO控件上单击右键,从快捷菜单中选择ADODC属性,直接在属性页对话框中进行所有设置。 (4) ADO数据控件的方法和事件 (5) 在ADO上新增绑定控件
从“外接程序”菜单中选择“外接程序管理器”,在对话框中选中VB6数据窗体向导,“加载”并“确定”,再从“外接程序”菜单中选择“数据窗体向导”,然后根据系统提示逐步操作即可创建所需要的数据窗体,系统自动把所创建的窗体加到工程中。 9.5结构化查询语言 1.SQL的基本组成
9.6报表制作 1.报表的概念 利用报表可以把数据表中的数据按一定的格式输出到屏幕上或打印到纸上。 2.制作报表的方法 在VB6.0中可以利用报表设计器来制作报表,从“工程”中选择“添加data report”,将报表设计器加入到当前工程中,报表由5部分组成: 报表标头——每份报表只有一个,可以用标签建立报表名。 页标头——每页有一个,即每页的表头,如字段名。 细节——需要输出的具体数据,一行一条记录。 页脚注——每页有一个,如页码。 报表脚注——每份报表只有一个,可以用标签建立对本报表的注释、说明。 使用报表设计器处理的数据需要利用数据环境设计器创建与数据库的连接, 从“工程”菜单中选择 “添加Data Enviroment”,在连接中选择指定的数据库文件,完成与数据库的连接,然后产生Command对象连接数据库内的表。 制作报表的步骤: (1) 新建工程,在窗体上放置两个命令按钮; (2) 从“工程”菜单中“添加Data Enviroment”,右击Connection1,在属性中选择“MicrosoftJet 4 OLE DBProvider”,在“连接”中指定数据库; (3) 再次右击Connection1,选则“添加命令”,创建Command1对象,右击Command1,在属性中设置该对象连接的数据源为需要打印的数据表; (4) 在从“工程”菜单中“添加Data Report”,在属性窗口中设置DataSource为数据环境DataEnviroment1对象,DataMember为Command1对象,即指定数据报表设计器DataReport1的数据来源; (5) 将数据环境设计器中Command1对象内的字段拖到数据报表设计器的细节区; (6) 利用标签控件在报表标头区插入报表名,在页标头区设置报表每一页顶部的标题; (7) 利用线条控件在报表内加入直线,利用图形控件和形状控件加入图案或图形; (8) 利用DataReport1对象的Show方法显示报表,在窗体Click事件加代码:DataReport1.Show; (9) 利用预览窗口按打印按钮可以打印报表; (10)利用预览窗口工具栏上的导出按钮可以将报表内容输出成文本文件或Html文件;也可以利用DataReport1对象的ExportReport方法将报表内容输出成文本文件或Html文件。 制作报表的简单方法是从“外接程序”中选择报表向导来设计报表。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |