《2023年vb知识点总结》由会员分享,可在线阅读,更多相关《2023年vb知识点总结(36页珍藏版)》请在金锄头文库上搜索。
1、第 1 章V i s ual bas i c 概述一、VB是 在 W i n d。w s 平台下, 用于开发和创建具有图形用户界面的应用程序的工具。二、VB是面向对象的程序设计语言;工作方式为事件驱动/ 消息驱动。1 .对象对象是动作体的逻辑模型,是人们可控制的某种东西,应用程序的每个窗体和窗体上的种种控件都是VB的对象2 .属性属性指对象的特性。3 . 方法方法指对象可以进行的动作或行为。4 . 事件事件是指能被对象所辨认的动作。5 .事件驱动只有在事件发生时程序才会运营。6 .工程工程是应用程序文献的集合, 一个工程一般会包含下列文献, 如表1 1 所示。表 1 - 1 应用程序文献类型文
2、献类型说 明工程文献( . V b p )它是与该工程有关的所有文献和对象的清单, 该文献是必选项窗体文献( . f r m )它包含事件过程,以及该窗体及窗体上的各个控件对象的属性设立以及相关的说明,该文献是必选项二进制数据文献( f r x)当窗体中具有二进制属性( 如图片或图标) 时,该文献将自动产生标准模块文献( . b a s )它包含可以被任何窗体或对象调用的过程程序代码, 该文献是可选项类模块文献( . C 1 S )该文献是可选项包 含 A ct i v eX控件的文献( . O C X )该文献是可选项( 第2 章创建用户界面知识点概括1 . 用户界面用户界面是应用程序中最重
3、要的部分, 是程序与用户进行交互的桥梁, 标准的Wi ndow s应用程序界面都是由窗口、菜单条、各种按钮、文本框、列表框等对象构成的。2 . 窗体窗体是包容用户界面或对话框所需的各种控件对象的容器。在创建一个新的工程时, 默认的第一个窗体即为启动窗体。3 . 控件控件是与用户进行交互的可视化部件,向窗体上添加控件应在窗体编辑器中进行。4 . 命令菜单命令菜单是应用程序窗口的基本组成元素之一, 它由菜单条、菜单、菜单项、子菜单、弹出式菜单组成, 可以通过V B 提供的菜单编辑器创建程序菜单。(1) 连 字 符 ( 一)(2) &5 . 设计用户界面的环节(1 )拟定窗体的大小和位置。(2 )
4、根据程序的功能和规定, 添加所需的控件。(3)合理地分布控件的位置与大小。(4 )设立各个对象的属性。6. 窗体及常用控件的常用属性、事件、方法熟悉各对象的常用属性、事件和方法,对于创建应用程序有着举足轻重的作用, 表 2 1 给出了窗体及常用控件的常用属性、事件以及方法使用说明。表 2 1窗体及常用控件的常用居住、事件以及方法一览表对 象名 称说 明通用属性N a m e设立对象在程序代码中的引用名C a ptio n设立对象的标题栏中或图标下面的文本F o nt设立文本的字体、字型、字号等通用属性left设立对象的左边界距容器坐标系纵轴的距离T op设立对象的上边界距容器坐标系横轴的距离H
5、 eig h t设立对象的高度Wid t h设立对象的宽度E n a b led设立对象是否被激活V i si b 1 e设立对象是否可见Bac k Color设立对象的背景色ForeColor设立对象的前景色I ndex设立控件在控件数组中的标记号Ta b Inf e x设立窗体中的对象响应 T a b 键的顺序T a bS t o p设立用户是否可以使用 Tab 键来选定对象Style设立控件的外观窗体(Fo r m)属性B oders t yle 设立窗体的边框风格I con设立运营时窗体最小化所显示的图标Pi c tur e设立窗体上的背景图像Aut o R e draw设立从G r
6、叩h i c s方法到一个持久性位图的输出方法Hide用于隐藏MDIFoHn或 F o n n 对象,但不卸载Show用于显示M D IFoM 或 F o M 对象MOVe用于改变对象的位置和大小Print用 于 在 ForM和 Pi ctu r cB ox上显示文本和图形C 1 s用于清除F o r m 和 Pi c t ur e B o x 上的文本和图形P r i ntForm用于将Fro m对象的图形逐位发送给打印机事件I n itialize当应用程序创建某对象时发生,可应用该事件初始化窗体所用的数据, 它 在 load事件前发生load当一个窗体被加载时发生Unload当窗体卸载时
7、发生C 1 i ck当在一个对象上单击鼠标左键时发生Dblcl i c k当在一个对象上双击鼠标左键时发生Re s ize当一个对象初次显示或窗口状态改变时发生A c tivate当一个窗体成为当前窗体时发生De a cti v at e当一个窗体不再是当前窗体时发生对 象名 称说 明属text设立控件中包含的文本( 小 于 32KB)m a xleng t h设立控件中可以输入字符的最大数,0为任意个字符M u ItiLi n e设立用户是否可以接受多行文本Alignment设立复选框或选项按钮或一个控件文本框(Te x tBox)性的文本的对齐Sc r ollBar设立对象是否有水平或垂宜
8、滚动条Passw o rdChar 设立是否在控件中显示用户键入的字符S elS t a r t设立所选择文本的起始点Sellength设立所选择文本的字符数SelT e xt设立包含当前所选择文本的字符串方法R e f r e sh强制所有重绘一个窗体或控件S e tFo c us将焦点移至指定的窗体或控件事件Chang e当文本框的内容改变或通过代码改变 T e x t属性的设立时发生lo s tFocus当对象失去焦点时发生GotFo c u s当对象获得焦点时发生K eyP r e s s当一个对象具有焦点,按下并松开一个键时发生命令按钮( Co m mandB u t ton)属性C
9、ancel设立该命令按钮是否为窗体的“ 取消”按钮D e fault设立该命令按钮是否为窗体的默认按钮St y le设立命令按钮的外观是标准风格或图形风格V alue设立命令按钮是否选中,True为选中, F al s e 为未选中方法s e tF o cus事件CLick标签( la bel)属性Au t oSi z e设立控件是否能自动调整大小以显示所有的内容Wordwrap设立控件是否扩大以多行方式显示标题文字, 前提是AutoSize为 t r ueB order S tYle设立边框是立体的或是平面的Back S tyle设立背景是透明的或是不透明的方法B e f r esh Mov
10、e事件C 1 i c k 、Db 1 Cl i c k选项按钮(Optio nButton)属性Capt i o n设立选项按钮旁的标题文字Al i glment设立选项按钮是在标题文字的左边还是在右边V a lue设立选项按钮是否被选中,True为选中, F als e 为未选中事件Click DblC l i c kCa p tion同选项按钮属A 1 i gnme n t同选项按钮复选框(Chee k Bo x )性Value设立选项按钮是否被选中,0 表达未选中, 1 表达选中, 2表达变灰, 暂时不能访问事件C l i c k框架(Frame)C a pti o n该属性为空时,可作
11、为一个封闭边框对 象名 称说 明列表框( 1 i stBox)属性List设立列表框中包含的项目T e x t表达运营中在列表框中最后选中的列表项的正文文本listin d ex表达运营中在列表框中最后选中的列表项序号Li s tC o u nt表达运营中列表框中的列表项数目S o rted设立是否将列表框中的列表项按ASCII码自动排序Co 1 um n s设立列表框中的项目是按一列还是按多列显示方法AddI t e m向列表框添加项目R emoveltem将列表框中所选中的列表项删除C l e a r清空列表框中的所有项目事件c lic k 、D blC 1 ick组合框(ComboBox
12、)属性Sty 1 e决定组合列表框的外观其余同L istBox方法同 1 ist B o x事件当 St y le 为 。 或 2 时可响应Cli c k 事件,当S t y le 为 1时可响应DblClick事 件 , 当 st y le为 0 或 1时可响应Cha ng e 事件图片框( P icture Box)属性P i ctu r e设立图片框的背景图像Au t o s i z e设立图片框是否能自动调整大小以显示完整的图片方法Print、Move Refresh事件C 1 ick图像(Image)属性P icture设立图像控件的背景图像stre t ch设立是否缩放图形来适应图
13、像控件大小注:加 *号的属性为只能通过代码设立的属性( 即在属性窗口中没有显示方法Mo v e Ref r esh定期器( T imer )属性Ena b led设立该控件是否被激活I n te r v al设立调用Tim er控件的Tim er事件间隔的时间( 单位为ms,最大为65 5 35ms)事件TimerT i me r 控件可以有规律地每隔一段时间执行一次代码水平/ 垂直滚动条(H s crol 1 Ba / Vs c r o 11 B a r)属性Mi n设立滚动块位于滚动条顶端或者最左侧时所代表的值M ax设立滚动块位于滚动条底端或者最右侧时所代表的值L a rg e Chan
14、ge设立当用户在滚动条的空白处单击时增减的值Sm a 1 1C h ange设立当用户在滚动条两端的箭头按钮上单击时增减的值V a lu e设立滚动条当前的值事件Chan g e在滚动块移动后或通过代码改变v al u e属性的设立时发生S c ro 1 1在滚动块移动时发生7、P rin t 方法* 第 3 章语言基础3.1知识点概括一个应用程序就是一个工程, 在一个工程中可以包含若干个文献, 应用程序的基本组成如图3 1所示。应用程序的基本组成( 工程文献(.vbp)一个或若干个窗体模块(.frm)一个或若干个标准模块( .b a s ) 事件过程(Sub)用户自定义过程(sub)田 白
15、白 咏 南 和 时 理用户自定义过程(Sub)用户自定义函数过程(Function)图 3 1应用程序的基本组成1 . 过程与模块程序的最基本单位是过程,一般在V B 中将过程分为事件过程和通用过程有窗体模块和标准模块, 关于过程与模块的概念和说明见表3 1。表 3 - 1 过程与模块2 . 数据类型概 念说 明过程事件过程为窗体以及窗体上的对象所编写的用来响应由用户或系统引发的各种事件的程序代码通用过程一个应用程序中的不同窗体或者一个窗体内不同的事件过程可以共享的程序代码模块窗体模块(,f rm)窗体模块中包含事件过程, 以及该窗体及窗体上的各个控件对象的属性设立和相关的说明;窗体模块还可包
16、含通用过程, 它对来自任何事件过程的调用都作出响应标准模块(,ba s )标准模块中保存的都是通用过程及相关的说明数据是计算机程序解决的对象, V B 具有强大的数据解决能力, 在 V B 中定义了标准数据类型,其具体说明见表3 2。表 3 - 2 数据类型数据类型类型名称类型说明符存 储 空 间 (Byte)初始值数值型整型I nteger%20长整型1 0 ng&4单精度型Si n gle14双精度型Doubl e#8货币型C u rrency8字节型ByteI字符型变长字符串Str i ng$10+串长度空字符串定长字符串S t r ing* S i ze$串长度布尔型Boolean2F
17、a 1 se日期型Da t es0:00: 0 0变体型V a rian t=1 6空字符串对象型0 b j e ct43. 常量常量就是在程序运营中取值始终保持不变的数据,可以是具体的数值也可以是专门说明的符号,各种常量的表达见表3 3。表 33 常 量类 型示 例数值常量12 3 、-9. 876E5( 单精度) 、3.14159265D8( 双精度)、&013 7( 八进制) 、&H2AB8 ( 十六进制)字符常量Vis u a 1 Basi c 、 中国 北京202 3 奥运会 ( 注:字符常量一定要放在西文双引号内)逻辑常量T ru e( 真)、False ( 假 )、非 0 值转换
18、为True、0 值转换为Fa1 se日期常量#1 2 : 3 5:4 8 # #7 / 1 2 / 2 0 23#回车与换行符Chr(13)十 Ctir(lO)或 vbcrlf符号常量自定义语句格式:Const常 量 名 类型说明符 A s 数据类型= 表达式C o n stP i!= 3 . 141 592 6Co nst Olym Pic As S ting= 中国 北京 2 02 3 奥运会”颜色常里红色vbRed青色vbcyan绿色vbG r e e n洋红色vbMage nta蓝色v b B 1 ue黑色v b black黄色vbYel 1 ow白色vb wh i te4.变量变量就
19、是以符号形式出现在程序中, 其值在程序执行期间可以发生变化的数据。变量的作用域的不同, 可将变量分为局部变量、窗体/ 模块级变量和全局变量。表 34 中给出了各种变量的声明方式和声明位置的比较。表 3 - 4 变 量局部变量窗体模块级变量全局变量声明位置过程中通用声明通用声明声明方式D i mS tatic( 静态)DimP r i v atePu b lie作用域仅在说明它的过程中使用在定义该变量的模块或窗体的所有过程内均有效在工程内的所有过程中都有效5 .运算符与表达式( 1 )运算符。在程序设计的过程中, 经常要进行各种各样的运算, 在VB中涉及四种运算:算术运算、连接运算、关系运算和逻
20、辑运算,相关运算符的说明见表3 5表3 5运 算 符( 2 )表达式。类型运算符/ 优先等级算术运算符人( 指数) f ( 取负) - * ( 整除)f M od( 取余) 一 +和连接运算符+ ( 运算符两边同为字符型) 和& ( 强制将两个不同类型的表达式作字符串连接)关系运算符 、= 、= 、, ( 不等于)、I s( 比较两个对象的引用变量) 、L i k e( 比较样式)逻辑运算符N ot ( 逻辑非) 一 A n d( 逻辑与) 一 or ( 逻辑或) 一 x o r ( 逻辑异或)把常量和变量用运算符、括号连接起来的式子就是表达式。在VB表达式中只能使用圆括号, 且括号必须成对使
21、用.( 3 )运算规则.运 算符运算优先顺序为:括号最优先一术运算一 连接运算- 关系运算- 逻辑运算。相 同数据类型的数据进行运算, 运算结果也是同一类型。 不同数据类型的数据进行运算, 运算结果为两个运算对象中存储长度较长的对象的类型 .例如:D i m x A s I n t e g e r , y A s I n t e g e rx = 2 0 0 :丫= 2 0 0P r i n t x * y执行以上程序段, 将出现“ 溢出”错误信息,若将其中y A s I n t e g e r改为y A s S i ng le ,则运算结果为4 0 0 0 O o6.常用内部函数V B中有两
22、类函数:内部函数和用户自定义函数。用户自定义函数将在第8章中进行介绍。内部函数是由系统提供的,可在任何一个vB程序中随时使用的程序段。表36 表3 - 1 0分别列出了常用函数的格式与功能。注意: 使用时要注意每个函数的功能、参数个数及类型,以及函数返回值的类型。表 3 - 6 算术函数表 3 - 7 字符串函数函数名功 能示 例表 达 式结 果S g r(x)求 X 的平方根值, x 0S qr( 1 6 )4log(x)求 x 的自然对数,x01 0 g( 2 )0. 693 1 4Exp(x)求以e 为底的幕值, 即求exExP(2)7.38906A b s(x)求 X的绝对值Abs (
23、4. 8)4.8Hex( x )求 X 的十六进制数值, 结果为一字符串Hex(10 0 0)3 E8Oct(x)求 X的八进制数值,结果为一字符串Oct(lOOO)1 7 50S gn(x)求 x 的符号,x 0 为 l,x = 0 为0, x 0 循环变量递增e3 0 循环变量递减e3= 0 死循环循环次数=!nt( ( e2 - el )/e3 ) +1注意:在循环体中, 当循环控制变量的值被改变后, 循环的次数将不确定;e l.e 2 .e 3在循环开始时进行一次性赋值| 计算 e ,e2.e3 |1 * 1 1 Exit ForNext v超过c 2 A H1 循 环 体 1| v=
24、v比3 |I1当型循环直到型循环IDO无条件循环无条件执行循环体, 即死循环。若在循环体中加入配合I f语句使用的Exit Do,就可以构成有条件的循环结构7 Exit语句程序执行到Exi t 语句时, 就会直接退出相关的结构,转而去执行该结构后的下一条语句。常见的形式是与IF语句结合使用, 格式如下:if e then Exit 语句格式相关结构说明8、循环嵌套E x it d oD o-loop循环结构跳出循环结构,转而去执行Ex i t forF or-next循环结构循环之后的下一行语句Exit subS u b 过程跳出过程,转而去执行调用E x i t functi o nFunc
25、ti o n 过程语句之后的下一行语句假如在一个循环内完整地包含另一个循环结构, 则成为多重循环或循环嵌套。嵌套的层数可以根据需要而定, 嵌套一层称为二重循环, 嵌套二层称为三重循环。对于循环的嵌套, 要注意以下事项:(1)内循环控制变量与外循环控制变量不能同名;(2)外循环必须完全包含内循环, 不能交叉;(3)不能从循环体外转向循环体内, 也不能从外循环转向内循环,反之则可。9.For循环与D。 循环的差别FOR循环中循环控制变量的值的改变已经包含在语句结构中,使用简朴方便;DO 循环自身并补包含循环控制变量的值的改变, 所以必须此外添加语句( 如1=1+1)对循环控制变量进行控制。练习:
26、1 执行下面程序, 当单击窗体时, 变量sum和 I 的值分别是多少?Pri v ate S ub F o r m_CI i c k ()Dim i As 1 n teger, sum A s Integ e rX=8. 5For i = 0. 5 To x Step 2.5s u m = s u m + i * 10Nex t iPrinl s u mP r i n t iE nd Su b 注 意 s te p 为负值的情形 若循环体内有1=1+1. 5 的语句, 则? 若循环体内有x =x+l. 5 的语句, 则?Key:200 101201 220 0 102. 素数问题f o rl=
27、 2 to x-1i f x m o d 1=0 then e xit fo rnext Iif I =x t h e n p rin t 是素数* fo r 循环的两个结束条件是判断素数的依据. 第 5 章 数组一、命名1、 必须符合标记符命名规则2、 在作用域内不能与变量名、过程名、函数名相同3、数组名代表整个数组二、定义1、数组是一组具有相同类型变量的有序集合。2、 数组中的变量使用一段连续的存储单元。3、数组分固定大小数组、动态数组和控件数组。4、 数组的定义形式见下表。数 组说 明固格定式P u b 1 ic|Pr i v ate| S tatic|D i m V数组名(V维界定义)
28、 As V 数据类型 大1、 p u b lic 只能在标准模块中定义公用( 全局) 数组小注privat e 用于模块中, 定义模块级数组数意d i m用于模块中, 定义模块级数组组事用于过程中, 定义过程级数组s t a t i c 用于过程中, 定义静态数组项2、 数组的默认下界是03、维的上、下界说明必须是常数表达式, 不可以是变量名或含变量的表达式, 即使变量的值已给出也不可以4、 上、下界必须是整数,若不是整数,V B 自动四舍五入取整5、 数组必须先定义后使用(1 ) 定义时不指明大小的数组, 语法格式如下:格Pub 1 i c Lpr i vate | St a tic 1 D
29、im 数组名( ) A s 数据类型 动(2)在拟定了数组所需的大小后,使用ReDim语句来动态地定义数组的大小,分派存储态式空间,语法格式如下:数ReD i mPreserve数组名( 维界定义)组注意事项1、 R e Dim语句是一个可执行语句, 只能出现在过程中。2、 重新定义动态数组时, 不能改变数组的数据类型。3、 可以使用变量说明动态数组新的大小4、 假如用r e dim定义的数组不存在, 则系统会先创建一个动态数组, 再给定大小。5、 若原数组有值,用 redim后,所有丢失;若要保存, 用Preserveo用了 P r e s e r v e 后,只能改变最后一维的维上界方(1
30、 )创建同名控件控法(2 )复制现存控件件注1、 同一控件数组内的控件类型是相同的数悬2、 控件数组中所有的控件名称相同;组事3、 控件数组中所有的控件所相应的事件过程是相同的;项4、控件数组中每个控件的I ndex属性用于区别数组的其他控件三、数组结构二维数组:按列存放三维数组:按页、歹 U、行存放四、基本操作1、 赋值与输出2、 数组元素的引用五、 数组函数及数组语句表 5 2 给出了与数组相关的函数和语句的说明表5 - 2与数组相关的函数和语句函数或语句功能与示例Option Base 011(1 ) Option Base 1语句, 表示数组维下界值为1( 2 )无Option B a
31、 s e语句, 表示数组维下界值为0LBound( 数组名 , 维数 )返回数组可用的最小下标Dim A (6) As Integer,Dim B (3, - 1 To 4) As Single则 LBound( A )的值是 0 ,LBound( B ,2 )的值是-1UBound( 数组名 , 维数 )返回数组可用的最大下标Dim A (6) As Integer,B(3, - 1 To 4 ) As Single则 UBound( A )的值是 6, UBound ( B , l )的值是 3, LBound( B,2 )的值是4Erase数组名1 , 数组名2 ,功能: 重新初始化固定
32、大小数组的元素, 或者释放动态数组的存储空间For Each Element In 语句组 Exit For 语句组Next Element 功能: 该语句按照数组的结构, 依次对数组中的每一个元素执行一次循环体。数组有多少个元素就执行多少次循环体3 .数组的基本操作( 1 )数组元素的输入。 .对数组的处理一般采用循环结构, 一维数组用单循环, 二维数组用双循环。根据程序而需要, 对数组元素的赋值可以采用不同的方式, 表5-3列出了常用的赋值方式。表5 - 3常用数组元聚的K值方式方 式示 例直接赋值Dim A (3) As IntegerA (l) = 28: A (2) =456 :A
33、(3) =2337使用Rnd函数赋值 .Dim B (6,3) As Integer As IntegerFor i = 1 To 6For j = 1 To 3B (iJ ) =Int(R nd*90) +10Next jNext i使用InputBox函数赋值Dim C (4) As Integer,! As IntegerFor i = 1 To 4C=InputBox(请输入第 & i & 个元素的值” )Next i使用Array函数赋值( 只可以给Variant变量赋值)Dim X As VariantX = A rray(7,5,3,2J)Print X (1 ),X (4 ),
34、X (5 )( 2 )变量的输出方式。当程序显示信息时, 可以以不同的方式显示, 表5 4总结了常见的输出方式和语句格式。表5 - 4变的输出方式对 象格 式说 明窗体Print 输出信息m ,然后换行Print & 信息m l和m 2相连在同一行上, 然后换行Print ; 同上Print ;输出信息m ,但不换行Print不输出信息, 直接换行文本框Text! = 信息m替代文本框的原内容Textl = Text! & T extl的原内容后增加信息mTexll =Textl & H & T e xtl的原内容后增加空格和信息mTextl = Texll & Chr(13) & Chr(
35、10)或 Textl = Textl & vbCrLf使Textl换行, 以后再增加信息时会显示到下一行上( 注意, 必须设置文本框的MultiLine = True)图片框Picture 1. PrintPrint的使用格式同窗体列表框Listl. Addltem 增加信息m作为列表框的新一个条目U stl. Addltem & 信息m l和m 2合并成为列表框的新一个条目消息窗口MsgBox函数该函数的使用方式见表3-105 . 2上机实验实 险5-1 找数字串实置要求输入一串字符串, 内有数字和非数字字符, 如 al23x57 17?48 s84 sutnd 9 ,将其中连续的数字作为一
36、个整数, 依次存放到一个数组中, 统计共有多少个整数, 并显示这些整数,如图5-1所示。家实蟹步1 ,窗体设计与属性设置略。2 .算法分析( 1 )当输入一个字符串以后, 我们不可字符串 al23x67 17748 3 sutnd 9图5 - 1找数字串能预先知道所包含数字的个数, 这里可以采用动态数组来处理。( 2 )判断并分离出整数。 用循环结构对每一字符逐一进行判断。 使用标志变量理吗来标记当前字符是否是数字字符。判断数字字符的表达式是:ch=OAndch =勺 。将数字字符转换为数值的方法是:Asc(ch) -A sc (U )。 拼接数字。第6章程序调试知识点概括1. V B的工作状
37、态V B有三种工作状态,如表6 - 1所示, 在窗口的标题栏上将显示当前的工作状态表6 -1 V B的工作状态2 . 错误类型工作状态说 明切换状态的方法设计态在设计态时, 可以设计程序的交互界面和编写相关的代码 单 击 “ 运营”菜单中的“ 启动”菜单项单击标渡工具栏中的, A按钮运营态程序正在运营的时期, 此状态下可查看代码但不能改动程序代码 单 击 “ 运营”菜单中的“ 结束”菜单项单击标准工具栏中的按钮中断态程序在运营的半途被暂停执行的状态 。在中断模式下, 可以修改程序代码 ,检查、调试、重置、单步执行或继续执行程序运营时因发生运营错误而暂停程序的执行运营态下按Ctr 1 +Brea
38、k组合键或单击“ 运行”菜单中的“ 中断”菜单项程序执行到断点所在的代码行按逐语句或逐过程执行时, 每执行完一个语句或一个过程后切换到设计态:单击标准工具栏中的按钮切换到运营态:单击标准工具栏中的, A按钮在V B程序设计中所产生的错误类型有三种, 如表6 - 2所示。表6 - 2错误类型错误类型说 明常见的错误语法错误违反V B语言有关语句使用形式或使用规则而产生的错误关键字拼写错误标点符号错误语句不完整对象名称或属性名、方法名、系统函数名拼写错误在通用声明处使用了 0 P tion E x p l icit语句,相关变量未定义或变量名拼写错误i f没有相应的end i f语句运营错误试图执
39、行一个不可执行的操作而引起的错误逻辑错误编写的程序代码不能实现预定的解决功能规定而产生的错误for循环没有相应的Ne x t语句D o 循环没有相应的loo P 语句3 . 程序调试程序调试的目的就是找出发生错误的地方, 拟定导致错误结果的因素,并修改程序直到对的为止。调试的技巧并不神秘, 每次的调试工作也无章可循。程序调试常用的手段就是在程序运营中对各段代码运营后的结果进行检查, 以确认错误发生的位置, 因此,我们可以通过控制程序的运营来逐步进行观测。V B 提供的程序调试工具及其相关说明如表6 - 3 所示。表 63 程序调试工具4. 程序调试窗口调试工具说 明操 作 方 式逐语句一次执行
40、一个语句,每执行一个语句就进入中断模式按 F8键单击调试工具栏中的按钮逐过程一次执行一个语句C 当碰到过程调用语句时, 不对过程中的语句逐句执行,而是一次性格过程执行完毕按 s h ift + F8 键单击调试工具栏中的按钮从过程中跳出当前执行点在过程中,若要跳出过程,则一次性执行完过程中未执行的代码段后, 使程序的执行点转到调用过程语句的下一句按ctrl+shif t J+IF 8 组合键单击i周试工具栏中的按钮断点程序代码中做了标记的位置, 程序在执行到断点所在处将由运营态转换到中断态设置断点在代码行左端竖栏中单击鼠标 按 F8 键 单 击 “ 调试”菜单中的“ 切换断点”菜单项单击调试工
41、具栏中的按钮洁除断,点 :按 Ctri + S hi f t + F9 组合键 单 击 “ 调试”菜单中的“ 清除所有断点”菜单项(1 )本地窗口。用于自动显示出所有当前过程中声明的变量及其值。(2)监视窗口。用于查看指定表达式的值。(3)立即窗口。当调试一个应用程序时, 可以用“ 立即”窗口执行单个的过程、对表达式求值、为变量或属性赋予新的值, 并可以通过在“ 立即”窗口中显示表达式的值来计算表达式。使用P r in t语句, 可 在 “ 立即”窗口中显示表达式的值。假如在程序执行时希望把值显示到 “ 立即”窗口中, 可以使用如下格式的print语句:D eb u g , p r in t
42、p l P 2 .或? plp2V s ,+ 第 7 章 过 程知识点概括1 . 过程的定义程序的基本单位是过程, V B 中常用的过程分为子程序(S u b )过程和函数(Function)过程,S u b 过程没有返回值, 而 Fun c tio n 过程有返回值,定义过程的语法规则如表7 1所示。表 7 - 1 过程的定义( a )S u b 过程的定义b)Function过程的定义事件过程窗体事件过程控件事件过程priv a te S u b F o r m_事 件 名 ( 参数列表 ) 局部变量和常量声明语句块En d Subpr i vate S u b 控件名_ 事件名( 参数列
43、表D 局部变量和常量声明语句块En d Sub通用过程p i va te|Pub 1 i c Static Sub 过程名( 参数列表 ) 局部变量和常量声明语句块E xi t SubEn d Su b定义 p r iva t e 1 Public Sta t ic F un c t i on 函数名( 参数列表 ) As 数据类型 局部变量和常量声明 语句块函数名= 表达式2. 过程的调用形式 E xit funct i on 语句块 函数名= 表达式en d F u net i o n调用过程可以通过以下两种方式进行,如表72表 72 过程的调用3. 形参和实参Sub过程Func t io
44、n 过程方法一Call=( 实参表)方法二 过程名 实 参 1 .实参2, 函数名( 实参表)形参给出传递到过程( 函数) 中的值在过程( 函数) 中的表现形式,实参是在调用Sub或Fu n ct i 。 n 过程时, 传送给相应过程的形参的形式, 具体区别如表7 3 所示。表 7 3 形参与实参4 . 参数的传递形 参实 参概念格式定义S u b 或 Func t ion时,出现在形参表中的变量名、数组名ByVai 1 ByRef变量名( ) A s 数据类型:在调用S u b 或 Funcl i on过程时,传送给相应过程的变量名、数组名、常数或表达式调用过程时,采 用 “ 形实结合”的方
45、式传递参数, 参数的传递有两种方式: 按值传递和按地址传递。在传递参数时规定“ 形实相应”,即规定形参和实参数据类型互相兼容,其特点如表7一 I 所示。表7T参数传递的特点按值传递按地址传递形参前加关键字“Byval”形参前加关键字“ByRe f ,或省略关键字过程调用时, v B给按值传递的形参分派一个临时存储单元形参和实参共用内存的同一 “ 地址”按值传递参数, 传递的只是实参变量的副本若实参是变量、数组元素或数组,则形参和实参类型必须一致, 否则会犯错5. 递归过程特过程中改变形参值, 只影响副本过程中改变形参值, 将同时改变形参和实参中的值点若实参为一个常量或者表达式,V B 将按传值
46、方式解决若实参是与形参类型不一致的常数或表达式,V B 会按规定进行数据转换,再将转换后的值传递给形参对于简朴变量M ,加括号即(M)则变为表达式, v B 将按传值方式解决数形参数组只能是按地址传递的参数( 即数组前不能用“ Byval” ,且数组名后只能是一对空括号) ,相应实参也必须是数组, 且数据类型必须一致组参调用过程时把要传递的数组名放在实参列表中即可, 数组名后可不跟括号数过程中不可以对形参数组再进行声明,但在使用动态数组时, 可以用ReDim语句改变形参数组的维界, 重新定义数组的大小递归过程是在过程定义中直接或间接调用自身来完毕某一特定任务的过程,递归过程中必须有递归结束语句
47、。递归有两种:直 接 递归:自己调用自己。间 接 递归: A 调用B,B调用A 。6 .变量的定义及使用规则根据变量定义的位置和声明方式的不同, 变量分为局部变量、窗体模块级变量和变量, 由于三种变量的作用域不同,变量的定义及调用规则也不同, 如表75 所示。表 75变量的定义及调用规则局部变量窗体/ 模块级变量全局变量窗 体标准模块声明位置过程中通用声明通用声明声明方式DimDimPu b li c7 . 过程定义及调用规则S t atic ( 静态)priv a te能否被本模块的其他过程调用不能能能能否被其他模块调用不能不能能( 变量名前加窗体名)能根据过程定义方式的不同, 过程分为模块
48、级( private) 和全局级( P u b li c ) , 其作用域也不相同,过程的定义及调用规则如表7 6 所示。表 7 - 6 过程定义及调用规则8 . 常用通用过程的定义示例模块级全 局 级窗 体标准模块窗 体标准模块定义方式pr i v a tep u bl i c能否被本模块的其他过程调用能能能能否被其他模块调用不能不能能 ( 必须在过程名前加窗体名)能 ( 过程名必须唯一,否则要加标准模块名)使用自定义过程的两个作用是:(1 ) 使程序分解成离散的逻辑单元, 整个程序容易调试。( 2)可以实现代码的共享, 而不必作过多的修改。掌握过程的定义与调用,对于我们学习和理解过程有着举
49、足轻重的作用。表 77 给出了一些常用通用过程的定义示例,表中还列出了对于同一问题的不同的过程定义形式,便于大家比较与理解。表 7-7 常用通用过程的定义示例功能定义示助Priva t e Su b R a nN u mber(Mi n As I ntege r ,M a x As In t eg e r, N A s Integer, x ( ),产Dim i As Intege r生R e D i m x(N)随For i =1 To N机整x( i )= Rn d * ( Max M i n + 1)十 M i n数Nex tEnd Su b数组元素排序p r i vat e Sub S
50、ort(x() As In t ege r )D i m i As I n t eger, j A s I nt eFor i= l T o u B o u n d ( x ) 1F or j = i 十 1 To UBo u nd(X)Ifx(i) x(j) ThenT=x(i)x( i )=x(j)x ( j )=TEnd ifNextNextEn d Sub 筛选法排序g e r , T A s Integer打印数组元素P r ivate Sub P r ( x () As I n t e g er, N A s Integer)Dim i As Int e g erFo r i=l
51、To UBound ( x )P r in t x(i);I f i M o d N=0Then print N 为每行打印的个数N e x tEnd S ubSub过程F u nc t i o n 过程素数的判断Sub P rime( x A s I n teger,Ynn)D i m i A s I Rteg e rYn=t r uef o r i=2T o Sqr(x)If x M odi= 0 TheYn= f alseExit fo rE nd I fNextEnd S ubA s Bo o le aF unction P r i me( x As Intege r )A s BD
52、i m i As Int e g erF o r i =2 T o Sqr(x)i fx M o d i= 0 ThenExi t Fu n c t io nEnd Ifn e x tPrime=Tru eEnd F un ction 函数过程有返回值一般过程递归过程求阶乘Func t io n F act(N As I n t e g e r)d i m i A s IRte6e rf a ct= 1Fori=l To NFac t =Fa c t * iNex tAs Ion gF unction fact(N As i n tif N = 0thenfa c t= 1e ls eF a
53、c t =N*Fact( N -End Ife g e r)As 1 o n-1 )End Fun c t i o nE nd Function功能定义示例一般过程递归过程F u n c tion Gcd(ByVa 1 M As I nte g er,fund i on ged (B y Vai M As I nt e ger, ByV a 1 NB y Vai ND i m R As Integer求A s In t ege r )R=M M od N最Dim R As I n t e g e ri f R=0then大DoGed =N公R=M Mod NE 1 se约M=NM=N: N=R
54、数N = Rg c d =gcd(M,N)lo o p u n t i 1 R=0end ifG ed =MEnd Functio nEnd functionPriv a t e S ub gen e (N As In t eg e r, Y in()Dim i As I nt e g e r,Idx As I n te g erAs I n teg e r)求fo ri= l To N 2if N Mod i= 0 t h en因Idx=Idx 十 1R e Dim P res e rv e Yi n (idx )子Yin(idx)=iEnd IfN extEnd Sub第 8 章知识点概括
55、1 . 文献管理控件常用的属性与事件为创建与文献有关的自定义对话框, 从而方便地查看系统的磁盘、目录和文献的信息,V B 提供了 3 个文献管理控件: 驱动器列表框(Dr i vel i s t B o x ) ,目录列表框( D irlisBox)和文献列表框( f i le 1 i stB o x ) , 关于文献管理控件的常用属性和事件如表8 1 所示。表 8 - 1 文献管理控件的常用属性和事件控件名称说 明属性Dr i ve返回用户选取的驱动器或指定出现在列表框顶端的驱2. 文献类型drivtl i st B oX动器, 运营时属性事件C h ange用户选择一个驱动器或输入一个合法
56、的驱动器标记符或在程序中给D r i v e 属性赋新值Dir 1 i stB0 x属性pa t h用于设立和返回目录列表框中的当前日录. 运营时届性事件C h a n g e双击目录列表框中的目录项或在程序代码中通过赋值语句改变Pa t h 属性值F ile L i stBox属性Path召于设立和返回文献列表框中所显示文献的途径, 运营时属性Pat t e r n设立程序运营时文献列表框中需要显示的文献类型fi 1 eName设立和返回文献列表框中将显示的文献名称事件pa thChange改变文献列表框的Path属性值pat t e m Cha n ge改变文献列表框的pattern属性值
57、文献是一组相关信息的集合, VB中提供了三种文献的访问类型:顺序文献、随机文献和二进制文献,三种文献的特点如表8 2 所示。表8 - 2文件的分类与特点顺序文件随机文件二进制文件特点以ASCII码方式存储每个记录的长度相同以字节为单位顺序读写、 存取速度慢按记录号访问、 存取速度快顺序成块地读取占内存小占内存大节省磁盘空间数据更新较繁顼数据更新容易不能随意定位读取数据大量数据的成批处理大最置找或修改文件中的数据 存储任意希望存储的数据3 .顺序文件的基本操作顺序文件的打开、 关闭和读写操作的方法及语句格式如表8-3所示。表8 - 3顺序文件的基本操作操作语句形式功 能打开文件Open文件名Fo
58、r Output As # 文件号用于创建文件, 向文件输出数据; 若文件已经存在,则输出的内容将重写整个文件Open文件名For Append As # 文件号用于向已经存在的文件中添加数据, 新写人的数据添加在文件的尾部, 文件中原来的内容不会丢失Open文件名For Input As # 文件号用于打开一个已经存在的文件, 从该文件中读取数据Print # 文件号 , 输出列表将一个或多个数据以标准格式或紧凑格式写入文件Write # 文件号 , 输出列表将一个或多个数据以紧凑格式写入文件, 写入的数据之间自动加逗号和双引号读操作Input。 文件号 , 变量表从一个打开的顺序文件中读取
59、数据, 并将这些数据依次赋给变量表中的变量Line Input#文件号, 变量名从一个打开的顺序文件中读出一行数据赋给一个字符型变量或变体型变量函数lnput( n , # 文件号)从一个打开的顺序文件中读出n个字符( 包括空格、 回车符、 换行符等) 作为函数的返回值关Close 文 件号 文 件 号 关闭一个或多个用Open语句打开的文件闭Reset关闭所有用Open语句打开的文件4 .随机文件的基本操作随机文件的打开、 关闭和读写操作的方法及语句格式如表8-4所示。表8 - 4随机文件的基本操作操作语句形式功 能打开文件Open 文件名For Random As # 文件号 Len二记录
60、长度对打开的文件进行读写操作, 可根据记录号访问文件中的任何一个记录写操作Put # 文件号 , 记录号 , 变量将变量内容写到打开的随机文件中读操作Gel # 文件号 , 记录号j ,变量将打开文件中的数据读入变量中5 .文件中常用的函数表8 - 5常用函数函数名_ _ _ _ _ _ _ _ _ _ _ _ 功 能EOF( 文件号)场 个 表 小 文 件 是 否到达文件末尾的标志, 到文件尾其值&T m .本叫C FalseLOF( 文件号)返回已用Open语句打开的某个文件的长度( 字 函 - - - - - - - - -一隈 -Filelen( 文件名)返回某个文件的长座( 字节新)
61、 - - - - - - - - - - - -F reeFile以整数形式返回Open语句可以使用的下一个右效文件号( 511)文件号)旦 钮 妻 您 形 式 返31某打开文件最近一次读/ 写操作的位置 -Seek( 文件号)以长整数的形式返M某打开文件当前读/ 写霖作的位置, 即文件的当前指针位置形处理与多媒体应用9 . 1知识点概括i .坐标系统在绘制图形时, 图形的大小与位置至关重要, 因此VB规定了两种坐标系统: 系统坐标系和容器坐标系, 两种系统的特点与说明如表9-1所示。表9 - 1坐标系统类 型 屏幕的左上角为坐标原点(0,0 )(0,0)系统坐标系决定了窗体在桌面上的显示位置
62、窗体或容器类对象的左上角为坐标原点(0,0)(0,0)容器坐标系匚m 及决定了控件或使用绘图方法绘制的图形在容器上的显示位置2 .度量单位VB系统缺省的度量单位是Twip( 特维、 堤) , 可以通过设置容器的ScaleMode属性改变度量单位, 具体说明请参见表9 2的ScaleMode属性值表。7/1A表92 ScaleMode属性值表常 数设置值描 述Vb U se r0指 S c a le H e ig h t S c a le W id th xS c a le L e f t 和 S c a le T op 属性中的一 个 或多个被设置为自定义的值Vb T wip s1维( 缺省值
63、, 每逻辑英寸为1 4 4 0维, 每逻辑厘米为5 6 7个提)Vb P oints2磅( 每逻辑英寸为72个磅)Vb P ixe ls3像素( 监视器或打印机分辨率的最小单位)Vb C h a ra c te rs4字符( 水平每个单位=1 2 0维, 垂直每个单位=2 40堤)Vb lnc h e s5英寸Vb M illime te rs6毫米Vb C e ntime te rs7厘米3 . 绘图控件及属性绘图控件Shape和 Line仅用于在窗体或图片框控件中绘制图形和直线, 它们只有属性, 其常用属性如表9-3所示。表9 3绘图控件的常用属性名 称说 明S h a p eS h a
64、p e设置图形种类, 0矩形( 缺省), 1 一正方形, 2椭圆, 3一圆, 4 一圆角矩形,5圆角正方形B a c kC olor设置图形背景色F illC olor设置图形镇充色F illS tyle设置图形底纹B ord e rC olor设置图形边框色B ord e rW id th设定图形边框宽度L ineB ord e i olor设置绘制对象的颜色B ord e rS tyle设置对象的样式, 。 一透明线, 1 一实心线( 缺省), 2破折号虚线, 3点号虚线, 4 一破折号一点号虚线, 5 破折号- 双点号虚线, 6内实线B ord e rW id th设置对象的宽度X I线
65、段端点I的X坐标Y 1线段端点1的丫坐标X 2线段端点2的X坐标Y 2线段端点2的Y坐标4 . 绘图方法在窗体或图片框上可以使用绘图方法绘制图形, 可以使用表9 4中的绘图语句, 画出点、 直线、 矩形、 圆和椭圆C表9 - 4绘图方法绘图方法格 式画点 O b je c t. P se t S te p ( x, y) , C olor画直线或矩形 O b je c t. L ine S te p ( xl , yl ) - S te p ( x2, y2) , C olor , B F 画圆、 椭圆、 圆弧 O b je c t. C irc le S te p ( x, y) , Ra
66、d ius , C olor , S ta rt , E nd , A sp e c t清除图形 O b je c t. C L S续表绘图方法格式在图形中加入文字 O b je c t. C urre ntX= 输出文字处X坐标 O b je c t. C urre ntY: 输出文字处Y坐标 O b je c t. P rint输出字符第 10章数据库操作及编程知识点概括1.数据库与数据库系统数据库技术中常用术语涉及:数据库( DataBase)、数据库系统Data Base Sys t em ) 和数据库管理系统( DBMS) ,其相关说明如表10-1所示。表 1 0 1 常用数据库术语
67、2 . 数据模型概 念说 明数据库以一定的组织形式存储的互相关联的数据的集合数据库系统是实现有组织地、动态地存储大量关联数据的具有数据库管理功能的计算机系统数据库管理系统用于建立、使用、管理和维护数据库数据的系统软件数据是客观存在的事实,是描述客观事物的数字、字符等符号的集合。数据对象及它们之间的关系就是数据模型, 数据模型的种类及特点如表1 0 -2 所示。表 102 数据模型3 . 关系型数据库的基本结构类 型特 点层次模型树型结构网络模型网状结构关系模型将数据组织成一维的表格, 即关系表关系型数据库就是将数据组织成一张或多张二维的表格,它由记录、字段数据表和数据库构成,如 表 103 所
68、示。表 1 0 - 3 关系型数据库的基本结构概 念说 明记录(Record )数据表中的每一行数据字段(Field)数据表中的每一列,表头为字段名数据表(T a b l e )相关数据组成的一维表格数据库(Data B a se)相关的数据表的集合4 . 数据控件(D ata)的属性和方法数据控件D a ta 可以实现对数据库记录进行显示、修改、增长和删除的操作。在V B 标准工具箱中提供了数据控件Data,使用该控件一方面要建立其与数据库的连接, 可以通过表10-4 中列出的Da t a 控件的相关属性进行设立。表 10-4 Data控件常用属性与方法5。与数据控件绑定的对象和属性data
69、控件说 明属性Con n t拟定数据库控件要访问的数据库的类型, 缺省值是Ac c essD ata b aseN a m e拟定数据库控件使用的数据库文献名称R e c o r d S o ur c e拟定访问的数据表名称R e co r dS e t数据表中所有数据的集合, 对数据库操作的许多方法都作用到这个属性上,是运营时属性Re a dO n ly设立用户能否对数据记录进行修改, 为 t ru e 时不能修改,为 false卡能修改, 默认值为F ais e方法Add N ew向数据控件所连接的数据表中增长一条空的记录Up d at a向系统发送一个更新数据库的命令D elet e删除数据库中的当前记录Move F i r st数据指针移到第一条记录Mov e Previous数据指针移到上一条记录M o veN e x t数据指针移到下一条记录M ove Last数据库记录指针指向最后一条记录可以与数据绑定的控件有:标签、文本框、复选框、组合框、列表框、图片框、图像等。要使窗体中绑定控件与数据库中的数据相关联,必须给绑定的控件定义设立表1 Q -5的两个属性。表 1 0 5 绑定控件与数据库关联的属性属 性说 明Data S ou r c e用于指定一个数据控件DataF i eld设立在控件对象上显示的是哪一个字段的内容