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 :

Valeur nulle dans un recordset [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 266
    Points : 182
    Points
    182
    Par défaut Valeur nulle dans un recordset
    Bonjour à tous,

    J'ai créé un formulaire indépendant qui me permet d'alimenter une table nommée "stock" .

    Les différents utilisateurs alimentent donc la table à l'aide de ce formulaire.

    Les champs sont multiples et je n'en retiendrai que 3 pour l'exemple.

    Table : stock

    Champs :
    id_produit de type integer
    nom_produit de type string
    date_produit de type date

    Les utilisateurs ont le choix de saisir ou de ne pas saisir la zone date_produit.

    Lorsque j'alimente ma table stock à la validation de la saisie, si la date est null le code bloque.

    Bien entendu, j'ai trouvé une solution palliative qui me permet d'alimenter ma table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If IsNull(date_produit) Then
     
    docmd.runsql "INSERT INTO stock (id_produit,nom_produit) VALUES ('" & id_produit & "','" & nom_produit & "');"
     
    else
     
    docmd.runsql  "INSERT INTO stock (id_produit,nom_produit,date_produit) VALUES ('" & id_produit & "','" & nom_produit & "','" & date_produit & "');"
     
    end if
    Par contre, lorsque j'utilise un autre formulaire pour la modification d'un enregistrement, la méthode update accepte parfaitement la date à null

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DoCmd.RunSQL "UPDATE  stock set stock.id_produit= " & "'" & id_produit & "'" & ", stock.nom_produit = " & " '" & nom_produit & "'" & ", stock.date_produit = " & " '" & date_produit & "'" & " WHERE (((stock.id_produit)= " & numer & "));"
    Assez mécontent de moi de ne pas avoir trouver d'explication, je fais appel à vous pour savoir si vous en avez une !..

    Merci à l'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    Bonsoir,
    Pour gérer les valeurs nulles tu disposes de la fonction NZ
    voir l'aide par F1
    qui te permets alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    docmd.runsql  "INSERT INTO stock (id_produit,nom_produit,date_produit) VALUES ('" & id_produit & "','" & nom_produit & "','" & nz(date_produit,"")  & "');"
     
    L'explication est que, dans une requête, tu ne peux affecter la valeur nulle à une colonne mais tu peux lui appliquer une chaine vide "" ou toute autre valeur permise par le type de la donnée
     
    :D

  3. #3
    Membre habitué Avatar de cluster26
    Profil pro
    Inscrit en
    Février 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 266
    Points : 182
    Points
    182
    Par défaut
    Merci pour la réponse.

    Effectivement il y a la fonction NZ.

    Mais comme j'ai beaucoup développé sous access 97, je n'ai pas le réflexe !..

    Merci encore.

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 917
    Points : 4 821
    Points
    4 821
    Par défaut
    Merci pour le retour.
    De plus prend l'habitude de cliquer "résolu" quand satifait.

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

Discussions similaires

  1. Pb valeur Null dans RecordSet avec jointure
    Par sleeg dans le forum ASP
    Réponses: 13
    Dernier message: 23/05/2011, 16h58
  2. Valeur nulle dans un Recordset et boucle de décision
    Par agrosjea dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/07/2007, 12h01
  3. Réponses: 4
    Dernier message: 06/05/2007, 14h43
  4. Problème de valeur null dans un recordset
    Par Petzouille57 dans le forum Access
    Réponses: 3
    Dernier message: 19/05/2005, 11h27
  5. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52

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