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

Access Discussion :

[A2-VBA] [Débutante]Erreur 94-Utilisation incorrecte de Null


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Points : 36
    Points
    36
    Par défaut [A2-VBA] [Débutante]Erreur 94-Utilisation incorrecte de Null
    Bonjour,

    J'ai une erreur dans mon code que je n'arrive pas à trouver!
    Je souhaite calculer l'âge de patients par rapport à une date de référence!
    Si les patients sont décédés, la date de référence devient la date de décès!

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    rst.MoveFirst
    
    While Not rst.EOF
    rst.Edit
    
    If IsNull(rst.Fields("Decede")) Then
        
        If IsNull(rst.Fields("DatNaissance")) Then rst.Fields("AgePatient") = ""
        End If
        
        If Not IsNull(rst.Fields("DatNaissance")) Then
        DateReference2 = "DatNaissance"
        DateReference = #6/30/2003#
        rst.Fields("AgePatient") = CalculAge(rst.Fields(DateReference2),    DateReference)
        End If
     
    Else
    DateReference2 = "DatNaissance"
    
    rst.Fields("AgePatient") = CalculAge(rst.Fields(DateReference2), rst.Fields("Decede"))End If
    
    rst.Update
    rst.MoveNext
    Wend
    
    MsgBox "L'âge des patients de la table " & NomTable & " est calculé "
    J'ai l'erreur "Utilisation incorrecte de Null" sur la ligne en rouge ci-dessus
    Si quelqu'un pouvait m'aider?

    Merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 136
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par Ericka


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rst.Fields("AgePatient") = CalculAge(rst.Fields(DateReference2), DateReference)
    Dans ta méthode CalculAge, il y a un paramètre rst.Fields(DateReference2),
    DateReference qui est probablement null et il n'aime pas cela. Il te manquerais pas par hasard des guillemets à rst.Fields("DateReference2") dans la fonction CalculAge.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Bonsoir Motrin,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Il te manquerais pas par hasard des guillemets à rst.Fields("DateReference2") dans la fonction CalculAge.
    J'avais déjà vérifié cela, j'ai fait d'autres essais et toujours la même erreur!
    Cependant, tu as raison, l'erreur vient certainement de ma "DateReference2" qui quelquefois "null"! (Les dates de naissance ne sont pas toujours renseignées)

    L'erreur est certainement ridicule mais là je sature!
    Je vais continuer à chercher!

    Merci à toi

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 136
    Points : 127
    Points
    127
    Par défaut
    tu as juste à ajouter un if

    if valeur = null
    CalculAge (....)
    else
    CalculAge ()
    end if

  5. #5
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    If IsNull(rst.Fields("DatNaissance")) Then rst.Fields("AgePatient") = ""
    End If
    Pas de End If quand le then est sur la même ligne que le If

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Bonjour à tous!

    Je n'avais pas mis de "End if" au début! Mais dans ce cas, j'ai une erreur me disant que j'utilise un "Else" sans "If"!

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Points : 36
    Points
    36
    Par défaut
    Ca y est!
    Ca fonctionne!
    J'ai juste réécrit mon code avec un peu plus de logique, le problème venait de l'ordre dans lequel j'introduisais mes conditions!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    rst.MoveFirst
     
    While Not rst.EOF
    rst.Edit
     
    If Not IsNull(rst.Fields("DatNaissance")) Then
                    If IsNull(rst.Fields("Decede")) Then
                          DateReference = #6/30/2003#
                          rst.Fields("AgePatient") = CalculAge(rst.Fields("DatNaissance"), DateReference)
                    Else
                          DateReference = rst.Fields("Decede")
                          rst.Fields("AgePatient") = CalculAge(rst.Fields("DatNaissance"), DateReference)
                    End If
     
     
    Else
          rst.Fields("AgePatient") = ""
     
    End If
     
    rst.Update
    rst.MoveNext
    Wend
     
    MsgBox "L'âge des patients de la table " & NomTable & " est calculé "
    En tout cas, encore merci pour votre aide!
    A bientôt

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

Discussions similaires

  1. [AC-2003] [VBA] Erreur d'exécution 94 - Utilisation incorrecte de Null aléatoire
    Par chahine92 dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/04/2011, 22h00
  2. [A-03]Erreur 94-Utilisation incorrecte de Null
    Par Gabrieel dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/02/2009, 16h48
  3. erreur 5:utilisation incorrecte de null
    Par giloo(94) dans le forum IHM
    Réponses: 6
    Dernier message: 13/02/2008, 13h21
  4. erreur 94 utilisation incorrecte de null
    Par caossak dans le forum Général VBA
    Réponses: 2
    Dernier message: 24/06/2007, 11h00
  5. Réponses: 3
    Dernier message: 30/03/2007, 14h48

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