Impedir um relatório de abrir se não houver dados para mostrar

Podemos impedir que um relatório abra se não houver dados para mostrar, e para isso podemos utilizar duas formas dependendo da versão do Access:

1- Todas as versões do ACCESS
Colocar o código abaixo nas propriedades do relatório, no evento ‘Ao ativar’

Utilize o evento Ao ativar (Activate) do Relatório:

Private Sub Report_Activate()

If DCount(“*”, Me.RecordSource) = 0 Then

MsgBox “Não existem registos para mostrar”, vbDefaultButton1, “Erro!”

DoCmd.Close acReport, “nome do relatório”

End If

End Sub

2- A partir da versão 7 (Access 95) foi incluido o evento ‘se nenhum dado’, então podemos urilizar o seguinte código:

Private Sub Report_NoData(Cancel As Integer)

MsgBox “Não existem dados no relatório.”, vbInformation, “Erro!!!”

Cancel = True

End Sub

Para ver em funcionamento faça o download do exemplo: Impedir relatório de abrir

  • Michelle

    Gostaria de saber qual versão do Access que você usa porque ao abrir o sistema de Vendas na minha máquina, aparece uma mensagem de formato de banco de dados não reconhecido.

  • Todos os exemplos são feitos no Access 2003. Posso enviar noutro formato anterior ao Access 2003 se quiser.

  • Thiago Santos

    Bom dia, estou fazendo um tabela com formulario, nesse formulário existem 3 de cada coluna campos com formulas (expressaão) exemplos:

    Periodo calculado1 -(menos) periodo calculado2
    (espaço p/colocar a data) (espaço p/colocar data)

    Periodo calculado3 -(menos) periodo calculado4
    (espaço p/colocar a data) (espaço p/colocar data)

    Periodo calculado5 -(menos) periodo calculado6
    (espaço p/colocar a data) (espaço p/colocar data)

    depois que ele faz o resultado da diferença de data depois ele multiplica por 30 com relaçao a um valor mensal “X”, depois do resultado da expressao nessas colunas resultado vai somando um com outro em um campo chamado Credito, sendo que p/ aparecer o resultado no campo crediton tenho q preencher todas as colunas como o campos sao datasn não da nem para colocar a data 00/00/0000 se eu consegui-se isso ja seria o suficiente, só falta isso p/acabar meu trabalho.
    Se poder me ajudar te agradeço e parabéns pelo blog Abrç. Thiago
    Caso não tenha compreendido poso enviar p/ vc por e-mail desde ja agradeço sua atenção.

  • Pode utilizar a função NZ

    Periodo calculado1 -(menos) nz(periodo calculado2)

  • Luis

    Olá José

    baixei o teu sistema de vendas, ms possui muitos
    para DEPURAR, baixei para fazer sistema de vendas para mim.
    grato.

  • Alan

    Vocês teriam algum arquivo de exemplo de como utilizar as funções =DPesquisar e =DLookup

  • Oi, vim conhecer seu blog, e desejar boa tarde
    bjsss

    aguardo sua visita 🙂

  • Washington

    É super simples impedir um relatório de abrir

    1) Abra o relatório no modo DESIGN e abra as propriedades do formulário.
    2) Vá na aba Evento e selecione a opção SE NENHUM DADO
    3) clique nas reticencias (…)
    4) Insira o código abaixo

    Private Sub Report_NoData(Cancel As Integer)
    MsgBox (“NÃO EXISTEM INFORMAÇÕES PARA ESTE RELATÓRIO”)
    End
    End Sub

    5) Feche o editor VISUAL BASIC
    6) Note que aparece PROCEDIMENTO DE EVENTO na opção SE NENHUM DADO
    7) Pode executar o seu programa.

  • Há muitas formas de se chegar a um objectivo, é só escolher e ser criativo.

  • Pode utilizar a função NZ

    Periodo calculado1 -(menos) nz(periodo calculado2)

  • Otavio Barros

    Bom dia! É possível criar um botão no formulário para executar um backup do banco de dados?
    Grato.

  • Parabéns pelo trabalho! visito seu site diariamente… Aproveitando, gostaria de indicar o site http://www.iAulas.com.br lá você vai encontrar mais de 10 mil apostilas para download gratuito dos mais variados assuntos, inclusive apostilas do Access… espero ter ajudado…

  • estupendo estava mesmo procurando exemplos do access
    muito obrigado