Office中国论坛/Access中国论坛

标题: 边学边问,还望指教! [打印本页]

作者: qqqq    时间: 2003-7-11 00:12
标题: 边学边问,还望指教!
最近学习ACCESS,遇到几条语句不明白,请大家指教.

for......to......next
do ......loop
不知哪条语句执行循环快,?该怎么用这两条语句?

期待中......
作者: 徐阿鹏    时间: 2003-7-11 01:26
用access的帮助看看
For...Next 语句示例
本示例使用 For...Next 语句创建一个字符串,其内容为由 0 到 9 的十个数字所组成的字符串,每个字符串之间用空格隔开。外层循环使用一个变量当作循环计数器,每循环一次,变量值减一。

Dim Words, Chars, MyString
For Words = 10 To 1 Step -1     ' 建立 10 次循环。
    For Chars = 0 To 9    ' 建立 10 次循环。
        MyString = MyString & Chars    ' 将数字添加到字符串中。
    Next Chars    ' Increment counter
    MyString = MyString & " "    ' 添加一个空格。
Next Words
以指定次数来重复执行一组语句。

语法

For counter = start To end [Step step]
[statements]
[Exit For]
[statements]

Next [counter]

For匩ext 语句的语法具有以下几个部分:

部分 描述
counter 必要参数。用做循环计数器的数值变量。这个变量不能是 Boolean 或数组元素。
start 必要参数。counter 的初值。
End 必要参数,counter 的终值。
Step 可选参数。counter 的步长。如果没有指定,则 step 的缺省值为 1。
Statements 可选参数。放在 For 和 Next 之间的一条或多条语句,它们将被执行指定的次数。



说明

step 参数可以是正数或负数。step 参数值决定循环的执行情况,如下所示:

值 循环执行,如果
正数或 0 counter <= end
负数 counter >= end



当所有循环中的语句都执行后,step 的值会加到 counter 中。此时,循环中的语句可能会再次执行(基于循环开始执行时同样的测试),也可能是退出循环并从 Next 语句之后的语句继续执行。

提示 在循环中改变 counter 的值,将会使程序代码的阅读和调试变得更加困难。

循环中可以在任何位置放置任意个 Exit For 语句,随时退出循环。 Exit For经常在条件判断之后使用,例如 If...Then,并将控制权转移到紧接在 Next 之后的语句。

可以将一个 For...Next 循环放置在另一个 For...Next 循环中,组成嵌套循环。不过在每个循环中的 counter 要使用不同的变量名。下面的体系结构是正确的:

For I = 1 To 10
    For J = 1 To 10
        For K = 1 To 10
            ...
        Next K
    Next J
Next I

注意 如果省略 Next 语句中的 counter,就像 counter 存在时一样执行。但如果 Next 语句在它相对应的 For 语句之前出现,则会产生错误。
For Each...Next 语句
      

针对一个数组或集合中的每个元素,重复执行一组语句。

语法

For Each element In group
[statements]
[Exit For]
[statements]

Next [element]

For...Each...Next 语句的语法具有以下几个部分:

部分 描述
element 必要参数。用来遍历集合或数组中所有元素的变量。对于集合来说,element 可能是一个 Variant 变量、一个通用对象变量或任何特殊对象变量。对于数组而言,element只能是一个 Variant 变量。
group 必要参数。对象集合或数组的名称(用户定义类型的数组除外)。
statements 可选参数,针对 group 中的每一项执行的一条或多条语句。



说明

如果集合中至少有一个元素,就会进入 For...Each 块执行。一旦进入循环,便先针对 group 中第一个元素执行循环中的所有语句。如果 group 中还有其它的元素,则会针对它们执行循环中的语句,当 group 中的所有元素都执行完了,便会退出循环,然后从 Next 语句之后的语句继续执行。

在循环中可以在任何位置放置任意个 Exit For 语句,随时退出循环。Exit For经常在条件判断之后使用,例如 If...Then,并将控制权转移到紧接在 Next 之后的语句。

可以将一个 For...Each...Next 循环放在另一个之中来组成嵌套式 For...Each...Next 循环。但是每个循环的 element 必须是唯一的。

注意 如果省略 Next 语句中的 element,就像 element 存在时一样执行。如果 Next 语句在它相对应的 For 语句之前出现,则会产生错误。

不能在 For...Each...Next 语句中使用用户自定义类型数组,因为 Variant 不能包含用户自定义类型。
For Each...Next 语句示例
本示例使用 For Each...Next 语句搜寻集合中的所有成员的 Text 属性,查找“Hello”字符串。示例中,MyObject 是面向文本的对象,并且是 MyCollection 集合的成员,这两个名字只是为示范目的而使用的通用名称而已。

Dim Found, MyObject, MyCollection
Found = False    ' 设置变量初始值。
For Each MyObject In MyCollection    ' 对每个成员作一次迭代。
    If MyObject.Text = "Hello" Then    ' 如果 Text 属性值等于“Hello”。
        Found = True    ' 将变量 Found 的值设成 True。
        Exit For    ' 退出循环。
    End If
Next




作者: qqqq    时间: 2003-7-12 03:04
标题: 多谢“徐阿鹏”
多谢“徐阿鹏”




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3