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, consegue-se imprimir relatórios que não contenham registos. Para solucionar este problema, poderá utilizar uma macro ou código VBA (Visual Basic for Applications) para detectar a ausência de registos num relatório e 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

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

Provavelmente pretenderá cancelar a impressão de um relatório quando o mesmo não contiver registos. Por exemplo, se estiver a começar a vender um novo produto, é provável que exista um período de tempo durante o qual não haja registos de vendas. Por conseguinte, deverá considerar a possibilidade de alguns dos relatórios poderem não conter registos detalhados e de as funções de agregação (tal como a função Contar) poderem não ter nada para contar. Para lidar com esta ocorrência, poderá criar uma macro que cancele a tarefa de impressão. Poderá também adicionar algumas linhas de código VBA cuidadosamente posicionado para conseguir o mesmo resultado. VBA é a linguagem de programação utilizada pelo Microsoft Office Access 2007.

Adicionar a macro ou o código VBA para Sem theta procedimento de evento o relatório. Office Access 2007 accionadores o evento Sem dados sempre que executar um relatório que não tem registos. A macro e o código VBA descritas neste artigo apresentam uma mensagem adequada e cancelar a impressão do relatório quando esse relatório não contém dados. Quando adiciona uma macro ou um código VBA para o procedimento de evento Sem dados , a macro ou o código VBA é executada sempre que abrir um relatório que não contém registos. Quando clica em OK para fechar ou mensagem de aviso, a macro também fecha o relatório em branco. Ao adicionar a macro ou o código VBA para o relatório, um relatório em branco não será 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 se tenta imprimir um relatório em branco. Quando o utilizador clica em OK para fechar a caixa de mensagem, a macro cancela automaticamente a operação de impressão. Se não for incluída nenhuma mensagem de alerta, será como se nada acontecesse quando se tenta imprimir o relatório (algo que irá 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 de Estrutura.

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

    - ou -

    Faça duplo clique na caixa situada no canto superior esquerdo ou direito do relatório, dependendo das 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 clique em OK.

    O estruturador de macros é iniciado, apresentando uma macro em branco.

  5. Na primeira linha da macro, clique no campo na coluna Acção e seleccione CxMsg a partir da lista.

  6. Em Argumentos de Acção na secção inferior do estruturador de macros, na caixa Mensagem, escreva o texto para a mensagem de alerta.

    Por exemplo, poderia introduzir o seguinte: Não existem registos.

  7. Opcionalmente, altere o valor de argumento na caixa Aviso Sonoro de Sim para Não e, na lista Tipo, seleccione o tipo de ícone que pretende apresentar na mensagem de alerta.

  8. Na caixa Título, escreva o título da mensagem de alerta.

    Por exemplo, poderia introduzir Sem Registos.

    As alterações aparecem na parte superior do estruturador de macros (na coluna Argumento, junto à acção CxMsg).

  9. Na parte superior do estruturador de macros, clique na célula seguinte na coluna Acção (na célula imediatamente abaixo de CxMsg) e seleccione CancelarEvento.

    A macro deverá ter o seguinte aspecto, embora seja possível utilizar texto diferente nos argumentos:

    Macro de exemplo que cancela uma operação de impressão

  10. No separador estrutura, no grupo Fechar, clique em Guardar como e, em seguida, utilize a caixa de diálogo Guardar como, dê um nome à macro.

  11. Feche a macro. Se for apresentada uma mensagem de alerta a perguntar se pretende guardar as alterações à macro e à propriedade de relatório, clique em Sim e avance para os próximos passos para a testar.

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. Dependendo das opções escolhidas, deverá ser apresentada uma mensagem de alerta idêntica à seguinte:

    Caixa de mensagem apresentada quando o relatório não contém registos

    Quando o utilizador clicar em OK para fechar a mensagem, a acção CancelarEvento irá interromper a operação de impressão. Dado que não foi especificado nenhum outro evento (tal como abrir o relatório para consulta), 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 muito semelhante à macro descrita na secção anterior: apresenta uma mensagem de alerta quando é aberto um relatório em branco, cancelando depois a operação de impressão quando a mensagem de alerta é fechada.

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 utilizar um relatório que não contém registos.

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

    - ou -

    Faça duplo clique na caixa situada no canto superior esquerdo ou direito do relatório, dependendo das 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 clique em OK.

    O Visual Basic Editor é iniciado, apresentando um procedimento de evento em branco.

  5. Escreva o seguinte código no Visual Basic Editor para que o procedimento Report_NoData tenha exactamente o seguinte aspecto quando o utilizador 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 Office Access.

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

  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. Verá uma mensagem semelhante à seguinte:

Caixa de mensagem apresentada quando o relatório não contém registos

O procedimento Report_NoData utiliza a função CxMsg para apresentar a mensagem Não existem registos e um botão OK. Quando o utilizador clica em OK, a linha "Cancel=True" no procedimento indica ao Access que deverá cancelar o relatório. Cancelar é um argumento transmitido automaticamente para o procedimento de evento, sendo sempre verificado pelo Access quando o procedimento de 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.

×