Iniciar sessão com a Microsoft
Iniciar sessão ou criar uma conta.
Olá,
Selecione uma conta diferente.
Tem várias contas
Selecione a conta com a qual pretende iniciar sessão.

Por predefinição, pode imprimir relatórios que não contenham registos. Para resolver este problema, pode utilizar uma macro ou um código VBA (Microsoft Visual Basic for Applications) 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?

É provável que queira cancelar a impressão de um relatório quando este não contém registos. Por exemplo, se estiver a começar a vender um novo produto, é provável que haja um período de tempo em que ainda não registou quaisquer vendas. Por conseguinte, deve considerar a possibilidade de alguns dos seus relatórios não conterem registos detalhados e que as funções de agregação, como a função Contar , não tenham nada para contar. Para lidar com esta ocorrência corretamente, pode criar uma macro que cancele a tarefa de impressão. Também pode adicionar algumas linhas de código VBA cuidadosamente colocado para fazer a mesma coisa. O VBA é a linguagem de programação que Access utiliza.

Pode adicionar a macro ou o código VBA ao procedimento de evento No Data do relatório. Access aciona o evento Sem Dados sempre que executar um relatório sem registos. A macro e o código VBA descritos neste artigo apresentam uma mensagem adequada e cancelam a impressão do relatório quando esse relatório não contém dados. Quando adiciona uma macro ou código VBA ao procedimento de evento Sem Dados , a macro ou o código VBA são executados sempre que abrir um relatório que não contenha registos. Quando clica em OK para fechar uma das mensagens de alerta, a macro também fecha o relatório em branco. Quando adiciona a macro ou o código VBA ao relatório, não é aberto um relatório em branco quando tenta apresentá-lo na vista relatório ou na vista Esquema, mas pode abrir o relatório na vista 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 aparecerá como se nada acontecesse quando tentar imprimir o relatório — algo que provavelmente 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 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 definições regionais e de idioma.

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

    É apresentada a caixa de diálogo Escolher Construtor .

  4. Clique em Construtor de 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 macro na janela de estrutura da macro, selecione MessageBox na lista.

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

    Por exemplo, pode introduzir o seguinte: Não existem registos para comunicar.

  7. Opcionalmente, altere o valor do argumento na caixa Aviso Sonoro 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 da mensagem de alerta.

    Por exemplo, pode introduzir Sem Registos.

  9. Selecione a lista pendente de ações de macro abaixo da ação Caixa de Mensagens 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 relatório, guarde as alterações, se lhe for pedido, e avance para os passos seguintes para testá-lo.

Testar a 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. Consoante as opções que escolheu, o Access apresenta uma mensagem de alerta.

    Quando clica em OK para fechar a mensagem, a ação CancelarEvento interrompe a operação de impressão. Uma vez que não especificou outro evento (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 descrito aqui funciona muito como a 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 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 definições regionais e de idioma.

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

    É apresentada a caixa de diálogo Escolher Construtor .

  4. Clique em Construtor de Código e, em seguida, clique em OK.

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

  5. Escreva o seguinte código no Visual Basic Editor para que o procedimento Report_NoData seja exatamente semelhante ao seguinte 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 tiver terminado, clique em Ficheiro e, em seguida, clique em Guardar.

  7. Clique em Ficheiro e, 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. Consoante as opções que escolheu, o Access apresenta uma mensagem de alerta.

O procedimento Report_NoData utiliza a função MsgBox para apresentar a mensagem Não existem registos para comunicar e um botão OK . Quando clica em OK, a linha "Cancel=True" no procedimento indica ao Access para cancelar o relatório. Cancelar é um argumento que é transmitido automaticamente para o procedimento de evento e é sempre verificado pelo Access quando o procedimento do evento é concluído.

Início da Página

Precisa de mais ajuda?

Quer mais opções?

Explore os benefícios da subscrição, navegue em cursos de formação, saiba como proteger o seu dispositivo e muito mais.

As comunidades ajudam-no a colocar e a responder perguntas, a dar feedback e a ouvir especialistas com conhecimentos abrangentes.

Estas informações foram úteis?

Quão satisfeito está com a qualidade do idioma?
O que afetou a sua experiência?
Ao selecionar submeter, o seu feedback será utilizado para melhorar os produtos e serviços da Microsoft. O seu administrador de TI poderá recolher estes dados. Declaração de Privacidade.

Obrigado pelo seu feedback!

×