Dicas do OsmarJr

#Error Quando o Subform não tem Registros


Alguns fatos sobre #ERROR devolvido quando um subform não tem registros: nestes exemplos [SubCampo] se refere a uma referência correta um campo do subformulário à partir do formulário principal,

 

 

Autor  Keri Hardwick

Tradução      Osmar José Correia Júnior

 

 

  1. Não resulta Null: IsNull([SubCampo]) resulta em Falso.
  2. Resulta erro no formulário principal mas não quando passado para um módulo global:

a. IsError([SubCampo]) no formulário principal resulta em True
b. IsAnError
([SubCampo]) devolve False de a função estiver em um módulo padrão:

 

Function IsAnError(testvalue as variant) as Boolean
    IsAnError = IsError(testvalue)
End Function

  1. Não resulta em numérico. IsNumeric([SubCampo]) resulta em Falso.

 

Acho que este é o melhor teste, já que, muitas vezes, é um total ou outro número que é passado para o formulário principal. Se não, normalmente temos um campo numérico no subformulário que pode ser testado, mesmo que não seja utilizado no formulário principal.

Este teste indica quando existem registros: IsNumeric devolve True; quando não há registros, IsNumeric devolve False. Desta forma você pode apresentar uma mensagem “Sem Registros” em vez de #ERROR.

 

'***************** Início do Código ***************
‘ Este código foi escrito originalmente por Keri Hardwick.
‘ Não deve ser alterado ou distribuído exceto como parte
‘ de um aplicativo. Sinta-se livre para utiliza-lo em
‘ qualquer aplicativo, desde que este cabeçalho fique
‘ inalterado.
'
Function nnz(testvalue As Variant) As Variant
'Não numérico devolve zero

    If Not (IsNumeric(testvalue)) Then
        nnz = 0
    Else
        nnz = testvalue
    End If
End Function
'***************** Final do código ****************

 

 


Contato | Copyright©Osmar José Correia Júnior | 17-Oct-2005 11:34