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

VB 6 et antérieur Discussion :

[VB]Passage d'une valeur NULL à un champ de type date?


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Par défaut [VB]Passage d'une valeur NULL à un champ de type date?
    Bonjour,

    savez vous s'il est possible de passer une valeur NULL à un champ de type Date?

    Chez, moi ca ne marche pas. VB me renvoie l'erreur "Utilisation Incorrecte de NULL"

    Si oui, comment faire?

    Merci

    Anikeh!

  2. #2
    Membre confirmé
    Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 85
    Par défaut
    Tu parles d'un champ. Il appartient à quelle BDD ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Par défaut
    non excuse moi.
    je parle d'une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim maVariable as date
     
    maVariable = NULL
    et là ca plante

  4. #4
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Petite question subsidiaire

    Pour quoi faire ???

  5. #5
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    fonctionne pour un type "Date"

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Par défaut
    Pourquoi?

    parce que j'ai besoin d'insérer une valeur nulle dans un champ date d'une base ACCESS.
    Dans ma requête INSERT, je ne mets pas directement les valeurs au niveau de VALUES, mais je passe par des variables: exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    INSERT 
    INTO MATABLE (monchamp)
    VALUES ('" & maVariable & "')
    Et c'est en passant la valeur NULL a ma variable que il y a plantage.
    Tout ca, c'est parce que il doit etre possible d'insérer des dates nulles dans l'appli.

    Espere avoir été clair.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2005
    Messages : 218
    Par défaut
    Citation Envoyé par Megaxel
    fonctionne pour un type "Date"
    non, là, il te mets une date 00:00:00
    ca n'est pas que je veux.

    Mais merci qd mme.

  8. #8
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Ce n'est pas ce que tu veux? Mais dis-toi bien qu'après, quand tu auras réussi à mettre "Null" dans une variable de type Date, il faudra encore que tu réussisses à faire rentrer ce Null dans ta base.

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    on pourrait faire ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function renull() As Variant
    Dim x As Variant
    renull = x
    End Function
     
    insert into values(rnull()...
     
    ou uptade ... rnull()

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    à l'attention de megaxel

    de très nombreuses bases indiquent qu'une valeur n'a jamais été
    renseignée en mettant ce champ à null

    ainsi on va trouver des champs dates à null ce qui signifie qu'on ne connaît
    pas la valeur

    plus extraordinaire encore on trouve des champs booléens à null

  11. #11
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Heuuu, merci de l'info!
    Non, je plaisante, je sais bien que "Null" existe, mais ce que je voulais faire deviner à anikeh, c'est que quand il génère sa requête SQL, il ne doit pas chercher à mettre Null dans sa requête. La façon que je pense être la plus simple, c'est de carrément omettre la partie qui contient "Null".
    Par exemple, pour une table "Table1", ayant les colonnes "Col1", "Col2", et "Col3", si tu veux mettre Null dans Col2, au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO MaTable (Col1, Col2, Col3) VALUES ("BlaBla1", Null, "BlaBla3")
    il est mieux de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO MaTable (Col1, Col3) VALUES ("BlaBla1", "BlaBla3")
    Comme ça, tu n'as pas à chercher comment écrire "Null", quel que soit le type de ta variable.

  12. #12
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    En bref, pour un date qui peut être non renseignée, il faut une variable du type Variant voire String, le type Date de VB n'accepte pas le Null
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  13. #13
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Empty existe
    Quelles obligations dans la table elle-même ?

  14. #14
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    empty n'est pas null
    quand on veut un champ à null pour une raison quelconque il faut lui affecter une valeur null ce que access refuse de prime abord

  15. #15
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Don't confuse Empty with Null. Null indicates that the Variant variable intentionally contains no valid data
    .
    Pas valable = pas acceptable par la table si champ de type date sauf si... (voir propriétés du champ : NULL interdit : OUI/NON ?)

  16. #16
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    null indique dans un contexte de base de données que la valeur
    n'est pas renseignée intentionnellement ou non

    si j'ai un champ situation familiale null c'est seulement dire que je ne sais
    pas ou ne veux pas entrer la situation familiale

    par contre ce n'est pas la même chose de remplacer "M" pour marié
    par "" ou par null

    idem pour la date de mariage
    sachant que quand on veut directement
    affecter null à un champ on se fait jeter dans la plupart des bases
    sauf à faire un insert de l'enregistrement sans le champ et à détruire l'ancien

  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Je crorais avoir lu :
    INSERT
    INTO MATABLE (monchamp)
    VALUES ('" & maVariable & "')
    Insert veut dire insert
    voulait-il dire UPDATE ?

  18. #18
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    insert ne veut pas dire update dont acte pour cette lapalissatde
    toutefois le problème reste le même et affecter à un champ date que ce soit par insert values ou par update peut se résoudre par la même démarche

  19. #19
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    j'ai beau vous suivre depuis le début de ce topic, je ne vois toujours pas l'interêt
    Si un champ de bdd ne peut accepter de valeur nulle (ce qui est le cas pour un champ de type Date), pourquoi s'enteter

  20. #20
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    mais si il peut, il fallait suivre

Discussions similaires

  1. [AC-2000] Affecter une valeur nulle à un champs
    Par forges dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/04/2012, 07h57
  2. [ZF 1.7] Insérer une valeure null dans champ ?
    Par kaboume dans le forum Zend_Db
    Réponses: 1
    Dernier message: 26/01/2009, 11h23
  3. Réponses: 3
    Dernier message: 10/08/2005, 11h11
  4. Inserer une valeur NULL dans un champ datetime
    Par Karibou dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/08/2005, 10h58
  5. Pb avec une dbgrid et un champ de type date
    Par Ellde dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/03/2005, 16h21

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