Provavelmente você irá cancelar um relatório quando ele não contiver nenhum registro. Por exemplo, se estiver começando a vender um novo produto, é provável que haja um período (de preferência curto) em que ainda é preciso registrar alguma venda. Portanto, é necessário considerar a possibilidade da inexistência de registros de detalhe para o relatório — e que as funções agregadas, como Contar, talvez não tenham nada para contar. Para lidar com uma ocorrência desse tipo, você pode adicionar algumas linhas de código do Microsoft Visual Basic® for Applications (VBA), cuidadosamente aplicadas ao relatório. O VBA é a linguagem de programação usada pelo Access.
O código VBA é adicionado ao procedimento do evento (procedimento do evento: um procedimento executado automaticamente em resposta de um evento iniciado pelo usuário ou pelo código de programa, ou acionado pelo sistema.) NenhumDado
. O Access dispara o evento (evento: uma ação reconhecida por um objeto, como um clique do mouse ou um pressionamento de tecla, para a qual você define uma resposta. O evento pode ser causado por uma ação do usuário ou uma instrução do Visual Basic, ou pode ser disparado pelo sistema.) NenhumDado sempre que um relatório é executado e nenhum registro é detectado. Você pode colocar no procedimento de evento um código que exibirá uma mensagem adequada e cancelará a impressão do relatório. O código será executado sempre que o relatório for executado e não contiver registros.
Crie o código VBA seguindo estas etapas:
Para abrir o relatório no modo Design
- Na janela Banco de Dados, em Objetos, clique em Relatórios.
-
Clique no relatório e, em seguida, clique em Design na janela Banco de Dados.
Para editar o procedimento do evento NenhumDado
- No menu Editar, clique em Selecionar Relatório.
-
No menu Exibir, clique em Propriedades e selecione a guia Evento.
- Clique na caixa de propriedade Se Nenhum Dado. Clique no botão de reticências (...) quando ele for exibido.
- Quando a caixa de diálogo Escolher Construtor for exibida, clique em Construtor de Código e clique em OK.
- Digite o código a seguir no Editor do Visual Basic (Editor do Visual Basic: um ambiente no qual você escreve um novo código e novos procedimentos do Visual Basic for Applications e edita os já existentes. O Editor do Visual Basic contém um conjunto de ferramentas de depuração completo para localizar problemas lógicos, de sintaxe e tempo de execução em seu código.) de forma que o procedimento Report_NenhumDado seja exibido exatamente desta maneira quando você terminar:
Private Sub Report_NoData(Cancel As Integer)
MsgBox "Não há registros a serem relatados", vbExclamation, "Nenhum registro"
Cancel = True
End Sub
Quando terminar, clique em Salvar no menu Arquivo. Em seguida, no menu Arquivo, clique em Fechar e Voltar para Microsoft Access. Finalmente, feche todas as janelas, exceto a janela Banco de Dados. Agora, quando você executar o relatório e não houver dados, a seguinte mensagem será exibida:

O procedimento Report_NenhumDado usa a função CaixaDeMensagem para exibir uma mensagem "Não há registros a serem relatados" e um botão OK. Quando você clica em OK, a linha"Cancel=True" do procedimento instrui o Access para cancelar o relatório. O argumento Cancelar é transmitido automaticamente para o procedimento do evento e é verificado automaticamente pelo Access quando o procedimento do evento é concluído.