1、OnError 语句 (启动一个错误处理程序并指定该子程序在一个过程中的位置;也可用来禁止一个错误处理程序。)
如果不使用 On Error 语句,则任何运行时错误都是致命的;也就是说,结果会导致显示错误信息并中止运行。
注意 :一个错误处理程序不是 Sub过程或 Function过程。它是一段用行标签或行号标记的代码。
语法
On Error GoTo line
On Error Resume Next
On Error GoTo 0
On Error 语句的语法可以具有以下任何一种形式:
语句 描述
On Error GoTo line 启动错误处理程序,且该例程从必要的 line 参数中指定的 line 开始。line 参数可以是任何行标签或行号。如果发生一个运行时错误,则控件会跳到 line,激活错误处理程序。指定的 line 必须在一个过程中,这个过程与 On Error 语句相同; 否则会发生编译时间错误。
On Error Resume Next 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行。访问对象时要使用这种形式而不使用 On Error GoTo。
On Error GoTo 0 禁止当前过程中任何已启动的错误处理程序。
在实例1中,遇到的On Error GoTo 指程序运行出错时跳转(并能找出错误的类型和编号使人能方便地分析或可以使我们的程序更加的结构化出错时进入专门的错误处理程序)
源文档 <http://topic.csdn.net/t/20030330/12/1595069.html>
2、游标的属性
1、 AdOpenForwardOnly (默认值)一次只能向前移动一行。
2、 AdOpenKeyset 打开键集类型游标。
3、 AdOpenDynamic 打开动态类型游标
4、 AdOpenStatic 打开静态类型游标。
具体的:AdOpenForwardOnly和AdOpenStatic这两种游标使得记录集只读,它表示创建数据的一个快照。后者比前者灵活,因为它可以允许任意方向移动。
AdOpenKeyset允许任意移动,并且允许更改记录集。其他用户对记录集的添加和删除,这个游标反映不出来。但它能反映出其他用户对记录集的更改。
AdOpenDynamic允许所有操作,其他用户对记录集的添加、删除、更改在此记录集中
都是可见的。
AdLockReadOnly (默认值)只读 --- 不能改变数据。
AdLockPessimistic 悲观锁(逐个)--- 为确保成功完成编辑记录所需的工作,
在编辑时立即锁定数据源的记录。
AdLockOptimistic 乐观锁(逐个)--- 只在调用Update 方法时才锁定记录。
AdLockBatchOptimistic 乐观批更新---用于批更新模式(与立即更新模式相对)。
源文档 <http://hi.baidu.com/jhpjszy/item/4f42e443a8966596833ae1d2>
3、DefinedSize与ActualSize的区别
DefinedSize 属性会返回一个 long 值,该值指示一个字段被定义的长度(字节)。
ActualSize 属性是一个只读属性。它会返回一个 long 值,该值指示某个字段的值的实际长度。如果 ADO 无法确定该 Field 对象的值的长度,则返回 adUnknown。
使用 DefinedSize 属性可确定 Field 对象的数据容量,而 ActualSize 则表明其实际长度。
源文档 <http://www.w3school.com.cn/ado/prop_field_size.asp>
4、什么是字段、记录和值?
在数据库中,对表的行和列都有特殊的叫法,每一列叫做一个“字段”。每个字段包含某一专题的信息。就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。
我们把表中的每一行叫做一个“记录”,每一个记录包含这行中的所有信息,就像在通讯录数据库中某个人全部的信息,但记录在数据库中并没有专门的记录名,常常用它所在的行数表示这是第几个记录。
在数据库中存放在表行列交叉处的数据叫做“值”,它是数据库中最基本的存储单元,它的位置要由这个表中的记录和字段来定义。在通讯录的表中就可以看到第一个记录与“单位”字段交叉处的值就是“中国人民银行上海分行”。“王岚”所在的记录和“电话”的这个字段交叉位置上的“值”就是“0551-7238321”。
源文档 <http://zhidao.baidu.com/question/4332840.html>
举例:
5、“objDataSource!用户名=objRs!用户名”???
在Visual Basic中,惊叹号“!”与圆点“.”都用于给对象命名,但两者语法上却存在很大的区别,这点在编程时尤其需要注意。
圆点操作符“.”用来表示对象的属性和方法,在引用时,需要用到对象的Name、圆点和需要的属性或方法。例如要引用文本框Textl中的文本属性时可用reponse$=Text1.Text,再如要改变Form1窗体返回或读取对象高度的单位时用Form1.ScaleHeigh=2000表示。
感叹号“!”常用于当一个控件作为一个特性访问的情况下,例如引用Fomr2中Text1文本框文本属性时,可采用response$=Form2!text1.text语法格式。
虽然两者的语法应用结构有较大差异,但两条语句的性能是相同的,值得注意的是如果你在感叹号“!”的位置使用“.”可以获得对窗体上Text1特性的直接访问权。
为了进一步增加感性认识,你不妨运行下面的例子来试试:
1.建立一个新项目,并在Form1窗体中增加一个命令控件。
2.双击Form1窗体,编辑Form-Load事件并输入:
Form1!Command1.Caption=”Text”
Form1.Command1.Caption=”It Works”
3.运行试项目,这时你就会在Command1命令框中看到字符串It Works。
为了在程序中清楚地界定引用的控件名和该控件的属性或方法,增加程序的可读性,最好使用感叹号“!”,这也是VB的推荐方式。
源文档 <http://www.accessoft.com/article-show.asp?id=1811>
6、0、""(空字串)、Null、Empty、与 Nothing 的区别
先回答以下问题吧! 经过以下的叙述之后, 变量 A、B、C、D 分别等于 0、""、Null、 Empty、 Nothing 的哪一个?
Dim A
Dim B As String
Dim C As Integer
Dim D As Object
A 等于 Empty, 因为尚未初始化的「不定型变量」都等于 Empty。但如果检测 A = "" 或 A = 0, 也都可以得到 True 值。
B 等于 "", 因为尚未初始化的非固定长度「字串」都等于 "" 。 但请注意 B<> Null。
C 等于 0, 这个还有问题吗?
D 等于 Nothing, 尚未设定有物件的「物件变量」都等于 Nothing, 但请不要使用 D = Nothing,而要使用 D Is Nothing 来判断 D 是否等于 Nothing, 因为判断 是否相等的符号是 Is 不是 = 。
最令人迷惑的地方是 Null 这个保留字, 请看以下语句:
Print X = Null
Print X <> Null
结果都是输出 Null(不是 True 也不是 False), 这是因为任何一个运算式只要含有 Null , 则该运算式就等于 Null, 实际上想要判断某一数据是否为 Null 绝对不能使用:
If X = Null Then \' 永远都会得到 Null
而要使用:
If IsNull(X) Then
哪一种数据会等于 Null 呢? 除了含有 Null 运算式之外, 就属没有输入任何数据的「数据字段」(在数据库中) 会等于 Null。
源文档 <http://www.accessoft.com/article-show.asp?id=1811>
7、使用对象编程
对象使用方法:
<1>、(引用)对象的声明 dim 对象名 as new [库名.]类名 (此时为加载,直到第一次使用时才真正的创建)
<2>、dim 对象变量名 = [库名.]类名
set 对象变量名=new [库名.]类名 (真正创建)
new ,创建一个新的实例,实例的引用赋给对象名,即就是新的实例的名字就是此对象名了
例:dim myform2 as form1
表明myform2的类型是Form1,此时myform2还是没有对象与它相对应,再加上set myform2=new form1语句时,才与dim myform2 as new form1 一样