IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Donnée absent dans champ. Erreur sur Calcul [Toutes versions]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Points : 150
    Points
    150
    Par défaut Donnée absent dans champ. Erreur sur Calcul
    Bonjour le forum

    J' ai cette fonction pour le calcul d' age

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function Anciennete(Anniv As Date) As String
     Dim diff As Double, NbreAns As Integer, NbreMois As Integer
    diff = Date - Anniv  ' diff en jour
    NbreAns = diff / 365
    NbreMois = (diff - (NbreAns * 365)) / 30
    Anciennete = NbreAns & " année(s) et " & NbreMois & " mois"
    End Function
    J' ai placer ceci dans ma requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Age: anciennete([DateNaissance])
    J' obtiens le résultat que je désire, mais j' ai un souci. Si je n' ai pas de date dans le champ DateNaissance,
    J' ai une ereeur dans mon champ Age.
    J' ai essayé de mettre une valeur par défault de type 00/00/0000, mais ca ne marche pas.
    je precise que j' ai laissé le champ DateNaissance en texte.
    Merci d' avance pour toute aide
    Aladin

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Bonjour,

    Tout dépend comment tu veux que ton programme réagisse si la date de naissance n'est pas renseignée Déjà, si tu veux qu'elle soit obligatoirement renseignée, modifies ta table en modifiant les paramètres du champs [DateNaissance] :
    • Null Interdit = Oui
    • Chaîne vide autorisée : Non


    Sinon, renseignes-toi sur la fonction Nz(maVariable, [valeur si null]) pour ta requête Celle-ci permet de vérifier si une variable est nulle et de renvoyer la valeur de ton choix. Par exemple :

    Modifies ta fonction comme ceci histoire de vérifier qu'on a bien une date passée en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Function Anciennete(Anniv As Variant) As Variant
        Dim diff As Double, NbreAns As Integer, NbreMois As Integer
     
        If IsDate(Anniv) Then
            diff = Date - CDate(Anniv)  ' diff en jour
            NbreAns = diff / 365
            NbreMois = (diff - (NbreAns * 365)) / 30
            Anciennete = NbreAns & " année(s) et " & NbreMois & " mois"
        Else
            Anciennete = Null
        End If
    End Function
    Ensuite ta requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT *, Nz(Anciennete([DateNaissance]),"0") AS Age FROM MaTable;

    Affichera "0" si la date est nulle ou n'est pas une date

  3. #3
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Points : 150
    Points
    150
    Par défaut
    Bonjour paidge et le forum
    merci d' avoir répondu, le souci c' est que le champ calculé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Age: anciennete([DateNaissance])
    est dans la requete qui almente le formulaire, je n' ai pas de code vba du style Aladin

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Citation Envoyé par Aladin_23 Voir le message
    le souci c' est que le champ calculé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Age: anciennete([DateNaissance])
    est dans la requete qui almente le formulaire, je n' ai pas de code vba du style
    Justement je t'ai donné le code SQL de la requête....Au lieu d'afficher ta requête en mode création, affiche-la en mode SQL et modifie-la avec le code SQL que je t'ai donné en prenant soin d'adapter le nom de la table Ensuite, tu repasses en mode création pour la modifier à ta guise si tu n'es pas à l'aise avec le SQL

  5. #5
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Points : 150
    Points
    150
    Par défaut
    Bonsoir paidge et le forum
    Avec un peu de retard car j' ai du abandonner un moment, merci pour tes conseils que j' ai suivi et qui m' a permit de résoudre le pb
    Aladin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Données absentes dans Formulaires imbriqués
    Par martin47 dans le forum Access
    Réponses: 3
    Dernier message: 07/01/2014, 15h07
  2. [CR 2008] Problème de données absentes dans la visualisation
    Par bens67 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/09/2012, 09h23
  3. [Toutes versions] Pb Champ vide erreur sur calcul
    Par Aladin_23 dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/01/2011, 11h50
  4. champ somme sur calcul = #ERREUR
    Par popofpopof dans le forum Access
    Réponses: 10
    Dernier message: 16/11/2007, 17h46
  5. erreur sur calcul
    Par Sendo dans le forum Access
    Réponses: 2
    Dernier message: 29/09/2005, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo