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 VBA (Microsoft Visual Basic for Applications) para detectar a ausência de registros em um relatório e, em seguida, 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 contiver nenhum registro. Por exemplo, se você estiver começando a vender um novo produto, é provável que haja um período de tempo em que você ainda não registrou nenhuma venda. Portanto, você deve considerar a possibilidade de que alguns de seus relatórios possam não conter registros de detalhes e que funções de agregação, como a função Count , podem não ter nada a contar. Para lidar com tal 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 dispara o evento On No Data sempre que você executa um relatório sem registros. A macro e o código VBA descritos 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 são executados sempre que você abre um relatório que não contém registros. Quando você clica em OK para fechar qualquer mensagem de alerta, a macro também fecha o relatório em branco. Quando você adiciona a macro ou o código VBA ao relatório, um relatório em branco não será aberto quando você tentar exibi-lo no modo de exibição De relatório ou layout , mas você pode abrir o relatório no modo de exibição Design.
Usar uma macro para cancelar a impressão
A macro descrita nesta seção exibe uma mensagem de alerta ao tentar imprimir um relatório em branco. Quando você clica em OK para fechar a caixa de mensagens, a macro cancela automaticamente a operação de impressão. Se você não incluir uma mensagem de alerta, ela aparecerá como se nada acontecesse quando você tentar imprimir o relatório – algo que provavelmente confundirá os usuários do relatório.
Criar a macro
-
No Painel de Navegação, clique com o botão direito do mouse no relatório que você deseja alterar e clique em Modo de Exibição de Design.
-
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.
-
Clique na guia Evento e, na caixa de propriedade On No Data , clique em .
A caixa de diálogo Escolher Construtor é exibida.
-
Clique em Construtor de Macros e clique em OK.
O designer de macro inicia e exibe uma macro em branco.
-
Na lista suspensa de ações de macro na janela de design de macro, selecione MessageBox na lista.
-
na caixa Mensagem , digite o texto para sua mensagem de alerta.
Por exemplo, você pode inserir o seguinte: não há registros a serem relatados.
-
Opcionalmente, altere o valor do argumento na caixa Bipe de Sim para Não e, na lista Tipo , selecione o tipo de ícone que você deseja aparecer em sua mensagem de alerta.
-
Na caixa Título , digite o título para sua mensagem de alerta.
Por exemplo, você pode inserir Nenhum Registro.
-
Selecione a lista suspensa de ações de macro abaixo da ação MessageBox e selecione CancelarEvent.
-
Na guia Design , no grupo Fechar , clique em Salvar.
-
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 o relatório, salve suas alterações se solicitado e continue nas 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 será fechado.
Usar o 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 – ela 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
-
No Painel de Navegação, clique com o botão direito do mouse no relatório que você deseja alterar e clique em Modo de Exibição de Design.
Observação: Para concluir esse procedimento, use um relatório que não contém registros.
-
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.
-
Clique na guia Evento e, na caixa de propriedade On No Data , clique em .
A caixa de diálogo Escolher Construtor é exibida.
-
Clique em Construtor de Código e clique em OK.
O Editor do Visual Basic inicia e exibe um procedimento de evento em branco.
-
Digite o seguinte código no Editor do 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 -
Quando terminar, clique em Arquivo e clique em Salvar.
-
Clique em Arquivo e clique em Fechar e Retornar ao Microsoft Access.
-
Feche o relatório aberto e clique em Sim para confirmar a salvação.
-
No Painel de Navegação, clique com o botão direito do mouse no relatório que você acabou de alterar e clique em Imprimir. Dependendo das opções escolhidas, o Access exibe uma mensagem de alerta.
O procedimento Report_NoData usa a função MsgBox para exibir o botão Não há registros para relatar a mensagem e um botão OK . Quando você clica em OK, a linha "Cancel=True" no procedimento instrui o Access a cancelar o relatório. Cancelar é um argumento que é passado automaticamente para o procedimento de evento e sempre é verificado pelo Access quando o procedimento de evento é concluído.