Erreur d'exécution '94' Utilisation incorrecte de Null
Résoluolivierporcinet Messages postés 16 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 13 septembre 2024 - 13 sept. 2024 à 14:59
- Erreur d'exécution '94' Utilisation incorrecte de Null
- Erreur 0x80070643 - Accueil - Windows
- Notice d'utilisation - Guide
- 94 jeu - Télécharger - Puzzle & Réflexion
- Utilisation chromecast - Guide
- Null brawl - Forum Jeux vidéo
4 réponses
13 sept. 2024 à 14:51
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.
13 sept. 2024 à 14:59
Un super grand merci, tout fonctionne.
Très bon week-end.
Olivier
13 sept. 2024 à 14:34
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).
13 sept. 2024 à 14:38
Lorsque je veux faire un nouvel enregistrement, le champ est vide et attend une valeur.
L'idéal serait qu'il n'attende pas nécessairement de valeur; de ce fait, à mon avis, il n'y aurait plus d'erreur.
13 sept. 2024 à 14:40
Exactement. Patientez, je vais vous adresser un bout de code en VBA pour vous donner un exemple.