首页 理论教育 VBA程序流程控制:Access数据库基础及应用教程

VBA程序流程控制:Access数据库基础及应用教程

时间:2023-11-05 理论教育 版权反馈
【摘要】:VBA程序设计按语句执行的先后顺序,程序可以分为3种基本的控制结构:顺序结构、分支结构和循环结构。顺序结构如果没有使用任何控制执行流程的语句,程序执行的基本流程是从左到右、自顶向下地顺序执行各条语句,直到整个程序结束,这种执行流程称为顺序结构。VBA中的分支结构包括以下4种语句形式,它们的执行逻辑和功能略有不同。过多使用GoTo语句,会导致程序运行跳转频繁,程序结构不清晰,调试和可读性差,建议不用或少用GoTo语句。

VBA程序流程控制:Access数据库基础及应用教程

VBA程序设计按语句执行的先后顺序,程序可以分为3种基本的控制结构:顺序结构、分支结构(即选择结构)和循环结构。

(1)顺序结构

如果没有使用任何控制执行流程的语句,程序执行的基本流程是从左到右、自顶向下地顺序执行各条语句,直到整个程序结束,这种执行流程称为顺序结构。

(2)分支结构(选择结构)

分支结构在执行时的特点是:根据所给定的选择条件为真或为假,决定从各实际可能的不同分支中执行某一分支的相应操作。纵然分支众多,也仅选其一。

VBA中的分支结构包括以下4种语句形式,它们的执行逻辑和功能略有不同。

1)单分支结构。

语句格式:

If条件表达式Then

语句块

EndIf

或:If条件表达式Then语句块

功能:条件表达式一般为关系表达式或逻辑表达式。当条件表达式为真时,执行Then后面的语句块或语句,否则不做任何操作。

2)双分支结构。

语句格式:

If条件表达式Then

语句块1

Else

语句块2

End If

或If条件表达式Then 语句1 Else语句2

End If

功能:当条件表达式的结果为真时,执行Then后面的语句块1或语句1,否则执行Else后面的语句块2或语句2。

3)多分支结构。

•If语句

语句格式:

If 条件表达式1Then

语句块1

ElseIf 条件表达式2Then

语句块2

[Else

语句块n+1]

End If

功能:依次判断条件,如果找到一个满足的条件,则执行其下面的语句块,然后跳过End If,执行后面的程序。如果所列出的条件都不满足,则执行E1se语句后面的语句块;如果所列出的条件都不满足,又没有Else子句,则直接跳过EndIf,不执行任何语句块。

•Select Case语句

语句格式:

Select Case变量或表达式

Case 表达式1

语句块1

Case 表达式2

语句块2

Case 表达式n

语句块n

[Case Else

语句块 n+1]

EndSelect

功能:根据变量或表达式的值,选择第1个符合条件的语句块执行,即先求变量或表达式的值,然后顺序测试该值符合哪一个Case子句中的情况,如果找到了,则执行该Case子句下面的语句块,然后执行End Select下面的语句;如果没找到,则执行CaseElse下面的语句块,然后执行End Select下面的语句。

(3)循环结构

1)For循环语句。For循环语句常用于循环次数已知的循环操作。

语句格式:

For循环变量=初值To终值[Step步长](www.xing528.com)

语句块1

[Exit For]

语句块2

Next[循环变量]

执行过程:

•将初值赋给循环变量。

•判断循环变量的值是否超过终值。

•如果循环变量的值超过终值,则跳出循环;否则继续执行循环体(For与Next之间的语句块)。

•在执行完循环体后,将循环变量的值加上步长赋给循环变量,再返回第二步继续执行。

•循环体中如果含有Exit For,则循环体语句执行到此跳出循环。ExitFor后的所有语句不执行。

2)While循环语句。For循环适合于解决循环次数事先能够确定的问题。对于只知道控制条件,但不能预先确定执行多少次循环体的情况,可以使用While循环。

语句格式:

While条件表达式

语句块

Wend

执行过程:

•判断条件是否成立,如果条件成立,就执行语句块;否则,转到第三步执行。

•执行Wend语句,转到第一步执行。

•执行Wend语句下面的语句。

3)Do循环语句。Do循环具有很强的灵活性,Do循环有以下几种语句格式。

语句格式1:

Do While条件表达式

语句块1

[Exit Do]

语句块2

Loop

功能:若条件表达式的结果为真,则执行Do和Loop之间的循环体,直到条件表达式结果为假。若遇到ExitDo语句,则结束循环。

语句格式2:

Do Until条件表达式

语句块1

[Exit Do]

语句块2

Loop

功能:若条件表达式的结果为假,则执行Do和Loop之间的循环体,直到条件表达式结果为真。若遇到ExitDo语句,则结束循环。

语句格式3:

Do

语句块1

[Exit Do]

语句块2

Loop While条件表达式

功能:首先执行一次Do和Loop之间的循环体,执行到Loop时判断条件表达式的结果,如果为真,继续执行循环体,直到条件表达式结果为假。若遇到Exit Do语句,则结束循环。

语句格式4:

Do

语句块1

[Exit Do]

语句块2

Loop Until条件表达式

功能:首先执行一次Do和Loop之间的循环体,执行到Loop时判断条件表达式的结果,如果为假,继续执行循环体,直到条件表达式结果为真。若遇到ExitDo语句,则结束循环。

(4)GoTo控制语句

语句格式:GoTo标号。

功能:无条件地转移到标号指定的那行语句。过多使用GoTo语句,会导致程序运行跳转频繁,程序结构不清晰,调试和可读性差,建议不用或少用GoTo语句。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈