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 :

Utilisation de Is Null Vba access


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut Utilisation de Is Null Vba access
    Bonjour à tous voiçi un code que j'ai fai fais
    Code Vba Access : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Public Function StatutFacturation(Date_Vente) As String
          If IsNull(Date_Vente) = True Then StatutFacturation = "Sans bon de commande" else StatutFacturation="Sur bon de commande"
     End Function
    Le hic est que quand j'exécute le programme j'ai uniquement les "sur bon de commande" alors que j'ai des champs Date_Vente remplies
    Quand j'éxécute et que j'affiche la date vente elle s'affiche en nombre (42756, 42586...) je ne sais si l'erreur vient de là du moins je ne pense pas mais le code il ne marche pas.

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 848
    Par défaut
    Bonjour,

    Ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Public Function StatutFacturation(Date_Vente) As String
          If IsNull(Date_Vente) = True Then StatutFacturation = "Sans bon de commande" else StatutFacturation="Sur bon de commande"
     End Function
    veut dire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Si DateVente est Null 
    Donc StatutFacturation = "Sans bon de commande"
    Sinon StatutFacturation="Sur bon de commande"
    Donc je ne comprends pas ce qui te surprend :
    Le hic est que quand j'exécute le programme j'ai uniquement les "sur bon de commande" alors que j'ai des champs Date_Vente remplies
    Plus d'explication peut-être ?

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 407
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 407
    Par défaut
    Bonjour.

    D'abors je te sugère de modifier ton code comme suit pour le rendre plus lisible et donc faciliter sa modification éventuelle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Function StatutFacturation(Date_Vente as variant) As String
     
          If IsNull(Date_Vente) = True Then 
                StatutFacturation = "Sans bon de commande" 
             else 
               StatutFacturation="Sur bon de commande"
          end if
     
     End Function
    Le typage en variant n'est pas indispensable mais cela montre clairement que tu sais que le type est indéfini et pas simplement que tu as oublié de préciser le type.

    Ensuite, en interne les dates sont en réalité des nombres décimaux. La partie entière (avant la virgule) représente le jour et la partie décimale (après la virgule) représente l'heure (en miliseconde il me semble).

    Dans ton cas si tu 42756 il est clair que ce n'est pas null donc il est normal que ton code donne "Sur bon de commande".

    Attention Null est un "Machin" à part, ce n'est pas 0 ce n'est pas un texte vide.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut
    J'ai testé le code
    Code code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Public Function StatutFacturation(Date_Vente As Variant) As String
          If IsNull(Date_Vente) = True Then
               StatutFacturation = "Sans bon de commande"
             Else
               StatutFacturation = "Sur bon de commande"
          End If
     End Function
    mais le resultat est le même il ne reconnait pas les champs où j'ai une date.

    J'ai essayé aussi de le faire en mode création avec la fonction vraifaux
    j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    VraiFaux([Stock_Remarketing]![Date_Vente] Est Null;"Sans bon de commande ;"Sur bon de commande")
    Et quand je le fais j'ai une erreur incompatibilité de type.

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 848
    Par défaut
    Bonjour,

    Je ne comprends pas le souci. Ton code marche tel quel dans une requête.
    Une base de données exemple est jointe avec l'utilisation dans une requête.

    Cordialement,

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut
    Je te mets en pièce jointe une copie de ma base pour que tu jette un oeil dessus
    Fichiers attachés Fichiers attachés

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut
    fichier excel necessaire pour créer la table liée
    Fichiers attachés Fichiers attachés

  8. #8
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 848
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 848
    Par défaut
    Effectivement, si la table est un fichier Excell attaché, les Null sont difficile à identifier.
    Donc il faut aussi rajouter un test sur les valeurs égales à "" donc la condition deviendrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Public Function StatutFacturation(Date_Vente As Variant) As String
          If IsNull(Date_Vente) = True Or Date_Vente = "" Then
               StatutFacturation = "Sans bon de commande"
             Else
               StatutFacturation = "Sur bon de commande"
          End If
     End Function
    Cordialement,

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 92
    Par défaut
    D'accord je ne savais pas qu'il fallait distinguer les cas si on n'importait une table d'excel.
    Merci

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

Discussions similaires

  1. Utilisation bibliothèque Lotus avec VBA Access
    Par lerico dans le forum VBA Access
    Réponses: 0
    Dernier message: 20/11/2007, 15h19
  2. [VBA]Utiliser les fonctions Excel avec Access
    Par PsykotropyK dans le forum VBA Access
    Réponses: 8
    Dernier message: 18/04/2007, 13h58
  3. Réponses: 3
    Dernier message: 30/03/2007, 14h48
  4. Réponses: 6
    Dernier message: 03/07/2006, 08h26
  5. [VBA Access] Champ texte null alors que l'objet existe bien.
    Par Caroline1 dans le forum VBA Access
    Réponses: 9
    Dernier message: 28/03/2006, 17h31

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