Erreur d'exécution '94' Utilisation incorrecte de Null
Résoluolivierporcinet Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon code :
Function calculAge(dateAnniv As Variant, dateM As Variant) As Variant
Dim nbMois As Integer
Dim nbJours As Integer
nbMois = DateDiff("m", dateAnniv, dateM) + (Day(dateM) < Day(dateAnniv))
If Day(dateM) < Day(dateAnniv) Then
nbJours = DateDiff("d", dateAnniv, DateSerial(Year(dateAnniv), Month(dateAnniv) + 1, 0)) + Day(dateM)
Else
nbJours = Day(dateM) - Day(dateAnniv)
End If
calculAge = LTrim(Str(nbMois \ 12)) & " ans " & LTrim(Str(nbMois Mod 12)) & " mois " & LTrim(Str(nbJours)) & " jours"
End Function
Problème : Erreur d'exécution '94 : Utilisation incorrecte de Null
nbMois = DateDiff("m", dateAnniv, dateM) + (Day(dateM) < Day(dateAnniv))
Mon champs est
DDN
Il faut sûrement préciser que à l'ouverture d'un nouvel enregistrement, le champ peut être null....
J'ai essayé de modifier le code avec
Nz
devant DateDiff mais rien ne fait.
Qui peut m'aider, merci.
- Erreur de lecture null
- Confirmation de lecture whatsapp - Guide
- Accusé de lecture gmail - Guide
- Iptv erreur de lecture - Forum TV & Vidéo
- Lecture gratuite - Télécharger - Vie quotidienne
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
4 réponses
Voici comment vous pouvez modifier votre fonction pour gérer les valeurs Null :
Function calculAge(dateAnniv As Variant, dateM As Variant) As Variant Dim nbMois As Integer Dim nbJours As Integer ' Vérifier si l'une des dates est Null If IsNull(dateAnniv) Or IsNull(dateM) Then calculAge = "Date(s) invalide(s)" Exit Function End If ' Calculer le nombre de mois nbMois = DateDiff("m", dateAnniv, dateM) + (Day(dateM) < Day(dateAnniv)) ' Calculer le nombre de jours If Day(dateM) < Day(dateAnniv) Then nbJours = DateDiff("d", dateAnniv, DateSerial(Year(dateAnniv), Month(dateAnniv) + 1, 0)) + Day(dateM) Else nbJours = Day(dateM) - Day(dateAnniv) End If ' Construire la chaîne de résultat calculAge = LTrim(Str(nbMois \ 12)) & " ans " & LTrim(Str(nbMois Mod 12)) & " mois " & LTrim(Str(nbJours)) & " jours" End Function
Gestion des valeurs Null :
La ligne If IsNull(dateAnniv) Or IsNull(dateM) Then permet de vérifier si l'une ou l'autre des dates est Null. Si c'est le cas, la fonction renvoie un message d'erreur personnalisé ("Date(s) invalide(s)") et quitte la fonction.
Continuer le calcul si les dates sont valides :
Si les dates sont valides, le reste du code fonctionne comme prévu.
Avec cette modification, votre code devrait gérer correctement les valeurs Null et ne plus générer d'erreurs lorsqu'un champ est vide.
Bonjour,
Le problème que vous rencontrez est lié à la gestion des valeurs Null. Lorsque vous essayez d'effectuer des opérations sur une valeur Null, cela génère une erreur d'exécution comme celle que vous rencontrez (Erreur d'exécution '94' : Utilisation incorrecte de Null).
Dans votre cas, vous devez vérifier explicitement si les variables dateAnniv et dateM contiennent une valeur avant d'exécuter la logique de calcul. Si l'une de ces valeurs est Null, vous devriez décider de la manière de gérer cette situation (par exemple, retourner une valeur par défaut, comme une chaîne vide ou un message d'erreur).