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

Nota: Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

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

O que pretende fazer?

Utilizar uma macro para cancelar a impressão

Utilizar código VBA para cancelar a impressão

É provável que queira cancelar a impressão de um relatório quando este não contiver registos. Por exemplo, se estiver a começar a vender um novo produto, é provável que seja um período de tempo em que ainda tenha de registar as vendas. Por conseguinte, deve considerar a possibilidade de que alguns dos seus relatórios não contenham registos de detalhe e que as funções de agregação, como a função contar , não tenham de contar nada. Para lidar normalmente com esta ocorrência, pode criar uma macro que cancele a tarefa de impressão. Também pode adicionar algumas linhas de código VBA cuidadosamente colocadas para efetuar a mesma coisa. O VBA é o idioma de programação utilizado pelo Access.

O utilizador adiciona a macro ou o código VBA aos relatórios do evento nãoé dota . o Access aciona o evento sem dados sempre que executa um relatório sem registos. A macro e o código VBA descritos neste artigo apresentam uma mensagem adequada e cancela a impressão do relatório quando esse relatório não contém dados. Quando adiciona uma macro ou um código VBA ao procedimento de evento em não dados , a macro ou o código VBA é executado sempre que abre um relatório que não contém registos. Quando clica em OK para fechar a mensagem de alerta, a macro também fecha o relatório em branco. Quando adiciona a macro ou o código VBA ao relatório, um relatório em branco não é aberto quando tenta apresentá-lo na vista de relatório ou vista de esquema, mas pode abrir o relatório na vista de estrutura.

Utilizar uma macro para cancelar a impressão

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

Criar a macro

  1. No painel de navegação, clique com o botão direito do rato no relatório que pretende alterar e clique em vista de estrutura.

  2. No separador Estrutura, no grupo Mostrar/Ocultar, clique em Folha de Propriedades.

    -ou-

    Faça duplo clique na caixa no canto superior esquerdo ou direito do relatório, consoante as suas definições regionais e de idioma.

  3. Clique no separador evento e, na caixa de propriedade por sem dados , clique em Botão do Construtor .

    É apresentada a caixa de diálogo escolher Construtor .

  4. Clique em Construtorde macros e, em seguida, clique em OK.

    O estruturador de macros é iniciado e apresenta uma macro em branco.

  5. Na lista pendente de ações de macros na janela de estrutura da macro, selecione MessageBox a partir da lista.

  6. na caixa mensagem , escreva o texto da mensagem de alerta.

    Por exemplo, pode introduzir o seguinte: não existem registos para denunciar.

  7. Opcionalmente, altere o valor do argumento na caixa AlarmeSonoro de Sim para não e, na lista tipo , selecione o tipo de ícone que pretende que seja apresentado na sua mensagem de alerta.

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

    Por exemplo, pode introduzir sem registos.

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

  10. No separador estrutura , no grupo fechar , clique em guardar.

  11. No separador Estrutura, no grupo Fechar, clique em Fechar. Se for apresentada uma mensagem de alerta e perguntar se pretende guardar as alterações à macro e à propriedade do relatório, clique em Sim, feche o seu relatório, guarde as alterações se lhe for pedido e avance para os passos seguintes para testá-lo.

Testar a sua macro

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

    Quando clica em OK para fechar a mensagem, a ação CancelarEvento pára a operação de impressão. Uma vez que não especificou nenhum outro evento (tal como abrir o relatório para visualização), o relatório é fechado.

Início da Página

Utilizar código VBA para cancelar a impressão

O código VBA aqui descrito funciona de forma semelhante à macro descrita na secção anterior — apresenta 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 com o botão direito do rato no relatório que pretende alterar e clique em vista de estrutura.

    Nota: Para concluir 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-

    Faça duplo clique na caixa no canto superior esquerdo ou direito do relatório, consoante as suas definições regionais e de idioma.

  3. Clique no separador evento e, na caixa de propriedade por sem dados , clique em Botão do Construtor .

    É apresentada a caixa de diálogo escolher Construtor .

  4. Clique em Construtor de códigoe, em seguida, clique em OK.

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

  5. Escreva o seguinte código no editor do Visual Basic para que o procedimento do Report_NoData seja apresentado exatamente da seguinte forma 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 ficheiroe, em seguida, clique em guardar.

  7. Clique em ficheiroe, em seguida, clique em fechar e regressar ao Microsoft Access.

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

  9. No painel de navegação, clique com o botão direito do rato no relatório que acabou de alterar e clique em Imprimir. Dependendo das opções que escolher, o Access apresenta uma mensagem de alerta.

O procedimento Report_NoData utiliza a função CaixaDeMensagem para apresentar a mensagem não existe registos para comunicar e um botão OK . Quando clicar em OK, a linha "cancelar = verdadeiro" no procedimento instrui o Access para 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 é concluído.

Início da Página

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?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×