Поделиться через


Макрокоманда RaiseError

Область применения: Access 2013, Office 2013

Действие RaiseError создает исключение, которое может быть обработано макрокоманда OnError .

Примечание.

Действие RaiseError доступно только в макросах данных.

Setting

Аргументы действия RaiseError приведены ниже.

Аргумент

Обязательный

Описание

Номер ошибки

Да

Число или выражение, разрешающееся в тип данных Long.

Описание ошибки

Нет

Строковое выражение, описывающее ошибку.

Замечания

Если действие RaiseError вызывается в макросе до изменения или перед удалением , событие отменяется.

Если нет активной инструкции OnError , обрабатывающей ошибки, то ошибка, вызванная действием RaiseError , добавляется в системную таблицу USysApplicationLog . Когда действие RaiseError выполняет запись в таблицу USysApplicationLog , для столбца Категория автоматически устанавливается значение Выполнение.

Чтобы просмотреть таблицу USysApplicationLog , выполните следующие действия.

  1. В меню Файл выберите пункт Параметры.

  2. В диалоговом окне Параметры доступа перейдите на вкладку Текущая база данных .

  3. В разделе Навигация щелкните Параметры навигации.

  4. В диалоговом окне Параметры навигации щелкните Показать системные объекты и нажмите кнопку ОК.

  5. Нажмите кнопку ОК , чтобы закрыть диалоговое окно Параметры доступа .

Пример

В следующем примере показано, как использовать действие RaiseError для отмены макроса данных перед изменением. При обновлении поля AssignedTo блок данных LookupRecord используется для определения того, назначен ли назначенный специалист для открытого запроса на обслуживание. Если это так, событие Before Change будет отменено, а запись не обновляется.

Пример кода изсправочника программиста Microsoft Access 2010.

    /* Get the name of the technician  */
    Look Up A Record In tblTechnicians
        Where Condition =[tblTechnicians].[ID]=[tblServiceRequests].[AssignedTo]
    SetLocalVar
        Name TechName
        Expression [tblTechnicians].[FirstName] & " " & [tblTechnicians].[LastName]
    /* End LookUpRecord  */
    
    If Updated("AssignedTo") Then
        Look Up A Record In tblServiceRequests
            Where Condition SR.[AssignedTo]=tblServiceRequests[AssignedTo] And 
                SR.[ID]<>tblServiceRequests.[ID] And IsNull(SR.[ActualCompletionDate])
            Alias SR
            RaiseError
                Error Number 1234
                Error Description ="Cannot assign a request to the specified technician: " & [TechName]
    
    End If