Иллюстрированный самоучитель по Access 2002


         

Синтаксис этого вида цикла выглядит,


Синтаксис этого вида цикла выглядит, следующим образом (в квадратные скобки заключены необязательные элементы синтаксической конструкции):

For <счетчик> = <начальноеЗначение>
То <конечноеЗначение>

[Step <приращение>]

<блокОператоров> Next [<счетчик>]
Несколько пояснений к приведенному описанию:

<приращение> — может быть как положительным, так и отрицательным числом. Если использовать отрицательное приращение, то конечное значение должно быть меньше либо равно начальному значению для того, чтобы тело цикла выполнилось хотя бы один раз;

после завершения работы цикла For. . .Next переменная, которая использовалась в качестве счетчика, получает значение, обязательно превосходящее конечное значение в том случае, если приращение положительно, и строго меньшее конечного значения, если приращение отрицательно;

если начальное и конечное значения совпадают, тело цикла выполняется лишь один раз.

Рассмотрим еще одну разновидность цикла For. . .Next, часто использующуюся в VBA при обработке объектов, составляющих
массив
или
семейство
однородных объектов. В этой разновидности цикла счетчик отсутствует, а тело цикла выполняется для каждого элемента массива или семейства объектов. Вот синтаксис такого цикла:

For Each <элемент> In <совокупность>

<блокОператоров>
Next [<элемент>]
где:

<элемент> — это переменная, используемая для ссылки на элементы семейства объектов;

<совокупность> — это имя массива или семейства.

Приведем пример использования подобного цикла. Следующая процедура предназначается для выдачи на печать списка всех полей для всех таблиц текущей открытой базы данных:

Public Sub EnumerateAllFields()
Dim MyBase As Database
Dim tdf As TableDef, fid As Field
Set MyBase = CurrentDb()
For Each tdf In MyBase.TableDefs

Debug.Print "Таблица: " & tdf.Name
For Each fid In tdf.Fields

Debug.Print " Поле: "

Содержание  Назад  Вперед