Cancelar impressão se um relatório não contiver registros

Por padrão, você pode imprimir relatórios que não contêm registros. Para resolver esse problema, você pode usar uma macro ou um código do Microsoft Visual Basic for Applications (VBA) para detectar a ausência de registros em um relatório e cancelar a operação de impressão. As etapas deste artigo explicam como usar ambas as técnicas.

O que você deseja fazer?

Você provavelmente deseja cancelar a impressão de um relatório quando ele não contém registros. Por exemplo, se você estiver começando a vender um novo produto, provavelmente haverá um período em que você ainda não registrou vendas. Você deve, portanto, considerar a possibilidade de que alguns de seus relatórios possam não conter registros de detalhes e que funções agregadas, como a função Count, possam não ter nada a contar. Para lidar com essa ocorrência normalmente, você pode criar uma macro que cancela o trabalho de impressão. Você também pode adicionar algumas linhas de código VBA cuidadosamente colocado para fazer a mesma coisa. VBA é a linguagem de programação que Access usa.

Você adiciona a macro ou o código VBA ao procedimento de evento On No Data do relatório. Access aciona o evento On No Data sempre que você executar um relatório sem registros. A macro e o código VBA descrito neste artigo exibem uma mensagem apropriada e cancelam a impressão do relatório quando esse relatório não contém dados. Quando você adiciona uma macro ou código VBA ao procedimento de evento On No Data, a macro ou o código VBA é executado sempre que você abre um relatório que não contém registros. Quando você clica em OK para fechar uma mensagem de alerta, a macro também fecha o relatório em branco. Quando você adiciona a macro ou o código do VBA ao relatório, um relatório em branco não será aberto quando você tentar exibi-lo no exibição Relatório ou no layout , mas você pode abrir o relatório no design.

Usar uma macro para cancelar a impressão

A macro descrita nesta seção exibe uma mensagem de alerta quando você tenta imprimir um relatório em branco. Quando você clica em OK para fechar a caixa de mensagem, a macro cancela automaticamente a operação de impressão. Se você não incluir uma mensagem de alerta, ela aparecerá como se nada fosse acontecer quando você tentar imprimir o relatório , algo que provavelmente confundirá os usuários do relatório.

Criar a macro

  1. No Painel de Navegação, clique com o botão direito do mouse no relatório que você deseja alterar e clique em Design View.

  2. Na guia Design, no grupo Mostrar/Ocultar, clique em Folha de Propriedades.

    -ou-

    Clique duas vezes na caixa no canto superior esquerdo ou direito do relatório, dependendo das configurações regionais e de idioma.

  3. Clique na guia Evento e, na caixa Propriedade On No Data, clique em Botão Construtor .

    A caixa de diálogo Escolher Construtor é exibida.

  4. Clique em Construtor deMacros e clique em OK.

    O designer de macro é iniciado e exibe uma macro em branco.

  5. Na lista lista listada de ações de macro na janela de design de macro, selecione MessageBox na lista.

  6. na caixa Mensagem, digite o texto da mensagem de alerta.

    Por exemplo, você pode inserir o seguinte: Não há registros a relatar.

  7. Opcionalmente, altere o valor do argumento na caixa Beep de Sim para Não e, na lista Tipo, selecione o tipo de ícone que você deseja aparecer na mensagem de alerta.

  8. Na caixa Título, digite o título da mensagem de alerta.

    Por exemplo, você pode inserir Nenhum Registro.

  9. Selecione a listada de ações de macro abaixo da ação MessageBox e selecione CancelEvent.

  10. Na guia Design, no grupo Fechar, clique em Salvar.

  11. Na guia Design, no grupo Fechar, clique em Fechar. Se uma mensagem de alerta for exibida e perguntar se você deseja salvar alterações na macro e na propriedade do relatório, clique em Sim, feche seu relatório, salve suas alterações se solicitado e continue até as próximas etapas para testá-lo.

Testar sua macro

  • No Painel de Navegação, clique com o botão direito do mouse no relatório que contém a macro e clique em Imprimir. Dependendo das opções escolhidas, o Access exibe uma mensagem de alerta.

    Quando você clica em OK para fechar a mensagem, a ação CancelEvent interrompe a operação de impressão. Como você não especificou nenhum outro evento (como abrir o relatório para exibição), o relatório é fechado.

Início da página

Usar código VBA para cancelar a impressão

O código VBA descrito aqui funciona muito parecido com a macro descrita na seção anterior , ele exibe uma mensagem de alerta quando você abre um relatório em branco e cancela a operação de impressão quando você fecha a mensagem de alerta.

Adicionar código VBA

  1. No Painel de Navegação, clique com o botão direito do mouse no relatório que você deseja alterar e clique em Design View.

    Observação: Para concluir este procedimento, use um relatório que não contém registros.

  2. Na guia Design, no grupo Mostrar/Ocultar, clique em Folha de Propriedades.

    -ou-

    Clique duas vezes na caixa no canto superior esquerdo ou direito do relatório, dependendo das configurações regionais e de idioma.

  3. Clique na guia Evento e, na caixa Propriedade On No Data, clique em Botão Construtor .

    A caixa de diálogo Escolher Construtor é exibida.

  4. Clique em Construtor deCódigo e clique em OK.

    O Visual Basic Editor é iniciado e exibe um procedimento de evento em branco.

  5. Digite o seguinte código no editor de Visual Basic para que o procedimento Report_NoData apareça exatamente assim quando terminar:

    Private Sub Report_NoData (Cancel As Integer)
    MsgBox "There are no records to report", vbExclamation, "No Records"
    Cancel = True
    End Sub
  6. Quando terminar, clique em Arquivoe clique em Salvar.

  7. Clique em Arquivoe clique em Fechar e Retornar ao Microsoft Access.

  8. Feche o relatório aberto e clique em Sim para confirmar o salvar.

  9. No Painel de Navegação, clique com o botão direito do mouse no relatório que você acabou de mudar e clique em Imprimir. Dependendo das opções escolhidas, o Access exibe uma mensagem de alerta.

O Report_NoData usa a função MsgBox para exibir o botão Não há registros para relatar mensagens e um botão OK. Quando você clica em OK, a linha "Cancel=True" no procedimento instrui o Access a cancelar o relatório. Cancel é um argumento que é passado automaticamente para o procedimento de evento e é sempre verificado pelo Access quando o procedimento de evento é concluído.

Início da página

Precisa de mais ajuda?

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

×