Преобразование макроса в VB-код

Если хотите узнать больше о языке Visual Basic и объекте DoCmd, можно взять существую­щий макрос и преобразовать его в чистый программный код, подпрограмму. Далее приведе­ны необходимые действия.

1. В области переходов выберите макрос, который хотите использовать.

2. Выберите на ленте Работа с базами данных → Макрос → Преобразовать макросы(Database Tools Macro Convert Macros to Visual Basic). Можно также преобразовать внедренный в форму макрос, открыв форму и выбрав на ленте Работа с базами данных → Макрос →Преобразовать макросы формы(Database Tools Macro Convert Form's Macros to Visual Basic).

 
 

На экране появится окно с двумя параметрами для выбора (рис. 17.9).

 

Рис. 17.9.Вы увидите это окно, если попросите программу Access преобразовать макрос FindHayEater


3. Если хотите добавить базовую обработку ошибок, убедитесь в том, что флажок Добавить программу обработки ошибок(Add error handling to generated functions) установлен.

Немного обработки ошибок никогда не помешает.

4. Если хотите включить комментарии макроса в комментарии VB, убедитесь в том, что установлен флажок Добавить примечания макросов(Include macro comments).

Если вы потратили время на добавление пояснительного текста, стоит сохранить его.

5. Щелкните мышью кнопку Преобразовать(Convert).

Программа Access создаст новый модуль для преобразованного кода и даст ему имя, по­добное имени Преобразованный макрос-[ИмяВашегоМакроса] (Converted Macro-[YourMacroName]). Внутри модуля Access создаст функцию с именем как у вашего мак­роса. Если преобразуется группа макросов (см. разд. "Группы макросов" главы 15), Access вставит по одной подпрограмме для каждого макроса в группе.

После завершения процесса преобразования программа Access откроет ваш модуль в ре­дакторе Visual Basic, чтобы вы могли просмотреть код.

В следующем примере показан результат преобразования макроса из главы 15 (приведенного в разд. "Поиск записи" главы 15), который ищет определенный текст в табли­це AnimalTypes:

Function FindHayEater ( )

On Error GoTo FindHayEater_Err


DoCmd.OpenForm "AnimalTypes", acNormal, " ", " ", , acNormal

DoCmd.GoToControl "Diet"

DoCmd.FindRecord "=""hay""", acAnywhere, False, , _

False, acCurrent, False

 

FindHayEater_Exit : Exit Function

FindHayEater_Err:

MsgBox Error$

Resume FindHayEater_Exit End Function

Вы заметите, что в преобразованном коде интенсивно используется объект DoCmd — действительно почти в каждой строке кода встречается объект DoCmd. Сначала он применяется в методе OpenForm для открытия формы, затем — в методе GoToControl для перехода в поле Dietи, наконец, он ищет первую запись, в которой встречается текст "hay". Эта строка выглядит причудливо, поскольку в ней удваиваются знаки кавычек (""). В языке Visual Basic знаки кавычек имеют особый смысл (они показывают, где начинается и заканчиваетсятекст). Если в текстовом фрагменте вы хотите на самом деле использовать кавычки, нужно поместить знаки кавычек дважды, одни за другими. Стрнно, но правильно.


Завершается код процедурой обработки ошибок, названной FindHayEater__Err, которая просто сообщает о проблеме в окне сообщения и затем завершает работу.

 

 

Примечание

Когда макрос преобразуется в программный код, программа Access всегда генерирует функ­цию, а не процедуру. Но функция не возвращает результат, т. к. этого не требуется. (По-видимому, Access действует таким образом, чтобы дать вам возможность позже воспользо­ваться возвращаемым результатом.)