Home
Home

---Soumis par Keri Hardwick--

#ERROR lorsque le sous-formulaire n'a pas d'enregistrement.

Voici quelques observations au sujet du  #ERROR qui est retourné lorsque le formulaire n'a pas d'enregistrement. Dans les exemples,  [Subf field] réfère à la syntaxe correcte pour accéder à un champ du sous-formulaire depuis le formulaire principal.

1. Dans ce qui suit, le champ ne doit pas s'évaluer à Null :  IsNull([Subf field]) est Faux

2. Il s'évalue à une erreur sur le formulaire principal, mais non lorsque fourni à un module global:
            IsError([Subf field]) sur le formulaire principal retourne Vrai
            IsAnError([Subf field]) retourne Faux, où la fonction suivante existe dans un module global:

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


3. Il n'est pas numérique. IsNumeric([subf field]) retourne Faux.

J'ai trouvé ce test comme étant le meilleur, puisqu'on passe souvent un total ou une autre valeur au formulaire principal. Si non, il se trouve généralement un champ numérique dans le sous-formulaire qu'on peut utiliser.

Ce test indique que s'il y a des enregistrements,  IsNumeric sera Vrai; si il n'y en a pas,  IsNumeric sera Faux. Vous pouvez donc repérer qu'il n'y a pas d'enregistrements et afficher votre propre message au lieu de #ERROR.

La fonction qui suit retourne zéro au lieu de  #ERROR et est utilisée comme suit: nnz([Subf field]) sur le formulaire principal. Je l'ai sauvegardée dans un module global.

'***************** Code Start ***************
'This code was originally written by Keri Hardwick. 
'It is not to be altered or distributed, 
'except as part of an application. 
'You are free to use it in any application,  
'provided the copyright notice is left unchanged.

'Ce code fut originalement écrit par Keri Hardwick. 
'Il ne doit être ni altéré, ni distribué
'sauf comme partie intégrée à une application.
'Vous êtes libre d'utiliser ce code 
'à la condition de laisser cette note, sans modification.
'
'Code Courtesy of
'Keri Hardwick
'
Function nnz(testvalue As Variant) As Variant
'Not Numeric retourne zéro
    If Not (IsNumeric(testvalue)) Then
        nnz = 0
    Else
        nnz = testvalue
    End If
End Function
'***************** Code End  ****************