Monthly Archives: Maio 2009

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

Como evitar que um formulário abra se não houver registos para mostrar?

Por vezes torna-se necessário evitar que um formulário abra se não houver registos para mostrar, por exemplo quando fazemos uma consulta e não se encontra nenhum registo pretendido, não precisamos de estar a abrir o formulário uma vez que não temos dados para mostrar. Então o que temos que verificar é se existem registos a mostrar e caso não haja nenhum mostramos uma mensagem e impedimos o formulário de abrir. Como?

É fácil basta colocarmos o código abaixo nas propriedades do formulário no evento ‘ao abrir’:

If Form.RecordsetClone.RecordCount = 0 Then
MsgBox “Não encontrei registos.”, vbExclamation, “Erro!!!”
DoCmd.Close acForm, “localizar dados”
Exit Sub
End If

Para ver um exemplo faça o download: Impedir Formulário de Abrir