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 vide pour un numérique


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 899
    Par défaut Valeur vide pour un numérique
    Bonjour à tous,
    J'aurais besoin d'affecter une valeur vide pour un champ numérique, j'ai essayé avec Nz mais je n'y arrive pas.
    J'ai réglé le problème en partie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    c2SQL = "UPDATE Tab_Seance SET Tab_Seance.bilan_ID = null WHERE (((Tab_Seance.bilan_ID)=0));"
    Mais si quelqu'un sait comment faire avec Nz ou autre fonctions Merci de me renseigner

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 414
    Par défaut
    Bonjour,

    Le libellé de la requête est correct. Le problème vient du champ bilan_ID.

    Si bilan_ID est une clé NuméroAuto, il ne peut prendre la valeur Null.

    Si bilan_ID est un nombre, il faut vérifier que dans la table il n'y est pas indiqué "Null interdit".

    Cordialement.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 899
    Par défaut
    Merci pour ta réponse, bilan_ID est une clé étrangère d'une table Bilan donc pas NuméroAuto, en fait le problème vient que si je ne créé pas de Bilan je veux que dans la table Séance bilan_ID soit vide pas nul, pas 0 car 0 ne fonctionne pas car Clé primaire bilan_ID dans la table Bilan (NumAuto),mais vide, comme j'ai dis la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c2SQL = "UPDATE Tab_Seance SET Tab_Seance.bilan_ID = null WHERE (((Tab_Seance.bilan_ID)=0));"
    fait l'affaire mais je voudrais savoir comment le faire avec une fonction comme Nz car je n'y suis pas arrivé... Est ce possible ? Car l'affectation
    ne fonctionne pas.
    Voilà si tu as une idée MERCI

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 414
    Par défaut
    Bonjour

    La partie bilan_ID = NULL n'est certainement pas le problème. C'est admis si le champ bilan_ID peut prendre la valeur NULL.

    Ce qui pose problème est le WHERE bilan_ID=0 car théoriquement il n'y a dans la table Bilan pas de ID=0 (la numérotation automatique commençant par 1). Aussi, comment ce bilan_ID a-t-il été mis à 0 ? Normalement cela entraine une erreur de le mettre à 0 s'il est lié à l'ID de la table Bilan.

    Cordialement.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 899
    Par défaut
    Citation Envoyé par EricDgn Voir le message
    Aussi, comment ce bilan_ID a-t-il été mis à 0 ? Normalement cela entraine une erreur de le mettre à 0 s'il est lié à l'ID de la table Bilan.
    ***********************************
    Bonjour et merci pour ton aide
    Pour répondre à ta question, bilan_ID est mis à 0 quand je fais pas de bilan :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim WDER_Cle_Bilan As Long
    c2SQL = "insert into [Tab_Seance]([Nom_Seance],[Patient_ID],[Bilan_ID]) values ('" & WNom_Seance & "'" & "," & WCle_Patient & "," & WDER_Cle_Bilan & ");"
      DoCmd.RunSQL c2SQL
      c2SQL = "UPDATE Tab_Seance SET Tab_Seance.bilan_ID = null WHERE (((Tab_Seance.bilan_ID)=0));"
      DoCmd.RunSQL c2SQL
    WDER_Cle_Bilan est mis par défault à 0 et aucune ligne n'est insérée dans la table Bilan
    Si tu as des infos notament sur Nz MERCI
    Volià A+

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 414
    Par défaut
    Bonjour,

    En fait dans le cas présent si une variable, en l'occurrence WDER_Cle_Bilan, n'a pas été initialisée, celle-ci n'est pas "null" mais "vide" (empty). Ceci devrait donc fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim WDER_Cle_Bilan As Long
     
    Debug.Print IsMissing(WDER_Cle_Bilan), IsNull(WDER_Cle_Bilan), IsEmpty(WDER_Cle_Bilan), WDER_Cle_Bilan  = Empty
     
    c2SQL = "INSERT INTO Tab_Seance (Nom_Seance, Patient_ID, Bilan_ID)" & _
           " VALUES ( '" & WNom_Seance & "', " & WCle_Patient & ", " & _
           IIF(WDER_Cle_Bilan=Empty, "NULL", "WDER_Cle_Bilan" & ");"
     
    debug.print c2SQL
     
    DoCmd.RunSQL c2SQL
    les Debug.Print n'étant là qu'à titre temporaire, juste pour voir ce qui se passe.

    Bonne continuation.

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

Discussions similaires

  1. Valeur vide dans un champ numérique
    Par mehdiyou1985 dans le forum Modélisation
    Réponses: 4
    Dernier message: 02/11/2012, 12h32
  2. [JNDI] Problème pour insérer une valeur vide
    Par felix79 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 20/10/2011, 11h37
  3. Valeur vide / NULL dans un champ de type numérique
    Par Esab75 dans le forum Débuter
    Réponses: 2
    Dernier message: 02/09/2010, 11h44
  4. Sélection d'une valeur vide pour un select
    Par Tiaps dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/06/2006, 10h20
  5. [Tableaux] Tableau valeur vide pour une clé
    Par hisy dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 11h49

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