Cancelar a impressão de um relatório se o mesmo não contiver registos

Por predefinição, pode imprimir relatórios que não contenham registos. Para resolver este problema, pode utilizar um código macro ou Microsoft Visual Basic para aplicações (VBA) para detetar a ausência de registos num relatório e, em seguida, cancelar a operação de impressão. Os passos deste artigo explicam como usar ambas as técnicas.

O que pretende fazer?

Provavelmente quer cancelar a impressão de um relatório quando não contém registos. Por exemplo, se está a começar a vender um novo produto, é provável que haja um período de tempo em que ainda não tenha registado qualquer venda. Deve, portanto, considerar a possibilidade de que alguns dos seus relatórios possam não conter quaisquer registos de pormenor e que funções agregadas, como a função Count, possam não ter nada a contar. Para lidar com tal ocorrência graciosamente, pode criar uma macro que cancela o trabalho de impressão. 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 utiliza.

Adicione o macro ou o código VBA ao procedimento do evento On No Data do relatório. Access aciona o evento On No Data sempre que escorrerá um relatório que não tem registos. O 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 se adiciona um código macro ou VBA ao procedimento de evento On No Data, o código macro ou VBA funciona sempre que abre um relatório que não contém registos. Quando clica em OK para fechar qualquer mensagem de alerta, a macro também fecha o relatório em branco. Quando adicionar o macro ou o código VBA ao relatório, um relatório em branco não será aberto quando tentar exibi-lo na vista do Relatório ou na vista de Layout — mas pode abrir o relatório na vista Design.

Use uma macro para cancelar a impressão

A macro descrita nesta secção exibe uma mensagem de alerta quando se tenta imprimir um relatório em branco. Quando clica em OK para fechar a caixa de mensagens, a macro cancela automaticamente a operação de impressão. Se não incluir uma mensagem de alerta, parece que nada acontece quando tentar imprimir o relatório – algo que provavelmente irá confundir os utilizadores do relatório.

Criar a macro

  1. No Painel de Navegação, clique à direita no relatório que pretende alterar e clique em Design View.

  2. No separador Estrutura, 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 definições regionais e linguísticas.

  3. Clique no separador Evento e na caixa de propriedade 'Não Dados', clique Botão do Construtor .

    Aparece a caixa de diálogo Choose Builder.

  4. Clique em Macro Buildere, em seguida, clique em OK.

    O macro designer começa e exibe uma macro em branco.

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

  6. na caixa 'Mensagem', digite o texto para a sua mensagem de alerta.

    Por exemplo, pode introduzir o seguinte: Não há registos a reportar.

  7. Opcionalmente, altere o valor do argumento na caixa de Bip de Sim para Não e, na lista Tipo, selecione o tipo de ícone que pretende aparecer na sua mensagem de alerta.

  8. Na caixa título, digite o título para a sua mensagem de alerta.

    Por exemplo, pode introduzir No Records.

  9. Selecione a lista de ações macro abaixo da ação MessageBox e, em seguida, selecione CancelEvent.

  10. No separador Design, no grupo Close, clique em Guardar.

  11. No separador Estrutura, no grupo Fechar, clique em Fechar. Se aparecer uma mensagem de alerta e perguntar se pretende guardar alterações na propriedade macro e no relatório, clique em Sim,feche o seu relatório, guarde as suas alterações se solicitadas e continue até aos próximos passos para testá-lo.

Teste a sua macro

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

    Quando clica em OK para fechar a mensagem, a ação CancelEvent interrompe a operação de impressão. Uma vez que não especificou nenhum outro evento (como a abertura do relatório para visualização), o relatório encerra.

Início da Página

Use o código VBA para cancelar a impressão

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

Adicionar código VBA

  1. No Painel de Navegação, clique à direita no relatório que pretende alterar e clique em Design View.

    Nota: Para completar este procedimento utilize um relatório que não contenha registos.

  2. No separador Estrutura, 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 definições regionais e linguísticas.

  3. Clique no separador Evento e na caixa de propriedade 'Não Dados', clique Botão do Construtor .

    Aparece a caixa de diálogo Choose Builder.

  4. Clique em Code Buildere, em seguida, clique em OK.

    O Editor Visual Basic inicia e apresenta um procedimento de evento em branco.

  5. Digite o seguinte código no Editor 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 'Arquivar'e, em seguida, clique em Guardar.

  7. Clique em 'Ficheiro'e, em seguida, clique em Fechar e Regressar ao Acesso ao Microsoft.

  8. Feche o relatório aberto e, em seguida, clique em Sim para confirmar a poupança.

  9. No Painel de Navegação, clique à direita no relatório que acabou de alterar e clique em Imprimir. Dependendo das opções que escolheu, o Access apresenta uma mensagem de alerta.

O procedimento Report_NoData utiliza a função MsgBox para exibir a Não existem registos para reportar mensagem e um botão OK. Quando clica EM OK,a linha "Cancel=Verdadeiro" no procedimento instrui o Acesso a cancelar o relatório. Cancelar é um argumento que é automaticamente passado para o procedimento do evento e é sempre verificado pelo Access quando o procedimento do evento estiver concluído.

Início da Página

Precisa de mais ajuda?

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

×