Перейти к основному контенту
Office

Отмена печати отчета, не содержащего записей

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

По умолчанию вы можете печатать отчеты, которые не содержат записей. Чтобы решить эту проблему, можно воспользоваться макросом или кодом Microsoft Visual Basic для приложений (VBA), чтобы обнаружить отсутствие записей в отчете и отменить операцию печати. В этой статье объясняется, как использовать обе методики.

В этой статье

Использование макроса для отмены печати

Отмена печати с помощью кода VBA

Возможно, вы захотите отменить печать отчета, если он не содержит ни одной записи. Например, если вы начинаете продавать новый продукт, скорее всего, это время, в течение которого вы еще не зарегистрировали продажи. Поэтому следует учитывать вероятность того, что некоторые из ваших отчетов могут не содержать записей подробных данных и агрегатные функции, такие как функция счёт , могут не подсчитываться. Для корректной обработки такого экземпляра вы можете создать макрос, который отменяет задание печати. Вы также можете добавить несколько строк кода VBA, чтобы сделать то же самое. VBA — это язык программирования, который Access использует.

Вы добавляете макрос или код VBA в процедуру обработки события No, которая указана в отчете " нетTA ". Access активирует событие On Data (нет данных ) при каждом запуске отчета, не обладающего записями. Макрос и код VBA, описанные в этой статье, выводят на экран соответствующее сообщение и отменяют печать отчета, если отчет не содержит данных. При добавлении макроса или кода VBA в процедуру обработки события " не данных " макрос или код VBA запускается при открытии отчета, который не имеет записей. Когда вы нажимаете кнопку ОК , чтобы закрыть сообщение оповещения, макрос также закрывает пустой отчет. При добавлении макроса или кода VBA в отчет Пустой отчет не открывается при попытке отобразить его в представлении отчета или режиме разМетки, но вы можете открыть отчет в режиме конструктора.

Использование макроса для отмены печати

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

Создание макроса

  1. В области навигации щелкните правой кнопкой мыши отчет, который нужно изменить, и выберите команду конструктор.

  2. На вкладке Конструктор в группе Показать или скрыть выберите пункт Страница свойств.

    -или-

    Дважды щелкните поле в левом верхнем или правом верхнем углу отчета в зависимости от региональных и языковых параметров.

  3. Перейдите на вкладку событие и в поле не в свойстве данные нажмите кнопку Кнопка "Построитель" .

    Откроется диалоговое окно " Выбор построителя ".

  4. Нажмите кнопку построитель макросов, а затем — кнопку ОК.

    Откроется пустой макрос в конструкторе макросов.

  5. В раскрывающемся списке макрокоманд в окне конструктора макросов выберите MessageBox из списка.

  6. в поле сообщение введите текст оповещения.

    Например, вы можете ввести следующие данные: нет записей для отчета.

  7. При необходимости измените значение аргумента в поле " звуковой сигнал" с "Да" на "нет ", а затем в списке тип выберите тип значка, который должен отображаться в сообщении оповещения.

  8. В поле название введите название сообщения оповещения.

    Например, вы можете ввести не записи.

  9. Выберите в раскрывающемся списке макрокоманды, расположенные под макрокомандой MessageBox , и нажмите кнопку макрокоманды ОтменитьСобытие.

  10. На вкладке конструктор в группе Закрыть нажмите кнопку сохранить.

  11. На вкладке Конструктор в группе Закрытие выберите команду Закрыть. Если появится предупреждение и вам будет предложено сохранить изменения в макросе и свойстве отчета, нажмите кнопку Да, закройте отчет, сохраните изменения, если появится соответствующий запрос, и перейдите к следующим действиям, чтобы проверить его.

Проверка макроса

  • В области навигации щелкните правой кнопкой мыши отчет, содержащий макрос, и выберите команду Печать. В зависимости от выбранных параметров Access выводит оповещение.

    При нажатии кнопки ОК , чтобы закрыть сообщение, действие макрокоманды ОтменитьСобытие останавливает операцию печати. Так как вы указали другое событие (например, открываете отчет для просмотра), отчет закрывается.

К началу страницы

Отмена печати с помощью кода VBA

Код VBA, описанный в этой статье, работает так же, как и макрос, описанный в предыдущем разделе, при открытии пустого отчета появляется предупреждение, а затем отменяет операцию печати при закрытии сообщения.

Добавление кода VBA

  1. В области навигации щелкните правой кнопкой мыши отчет, который нужно изменить, и выберите команду конструктор.

    Примечание: Для выполнения этой процедуры используйте отчет, который не должен содержать записей.

  2. На вкладке Конструктор в группе Показать или скрыть выберите пункт Страница свойств.

    -или-

    Дважды щелкните поле в левом верхнем или правом верхнем углу отчета в зависимости от региональных и языковых параметров.

  3. Перейдите на вкладку событие и в поле не в свойстве данные нажмите кнопку Кнопка "Построитель" .

    Откроется диалоговое окно " Выбор построителя ".

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

    Откроется редактор Visual Basic и отобразится пустая процедура обработки события.

  5. Введите следующий код в редакторе Visual Basic, чтобы процедура Репорт_нодата выполнялась именно так, как показано ниже.

    Private Sub Report_NoData (Cancel As Integer)
    MsgBox "There are no records to report", vbExclamation, "No Records"
    Cancel = True
    End Sub
  6. Когда все будет готово, нажмите кнопку файл, а затем — сохранить.

  7. Нажмите кнопку файл, а затем — кнопку Закрыть и вернитесь в Microsoft Access.

  8. Закройте открытый отчет и нажмите кнопку Да , чтобы подтвердить сохранение.

  9. В области навигации щелкните правой кнопкой мыши отчет, который вы только что изменили, и выберите команду Печать. В зависимости от выбранных параметров Access выводит оповещение.

Процедура Репорт_нодата использует функцию MsgBox для отображения записей о сообщениях и кнопках ОК . При нажатии кнопки " ОК" в процедуре "Cancel = true" появляется строка "Отмена = истина", в которой будет отказано в доступе. Cancel — это аргумент, который автоматически передается в процедуру обработки события и всегда проверяются при выполнении процедуры обработки события в Access.

К началу страницы

Совершенствование навыков работы с Office
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×