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 Null dans un Insert into


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut Valeur Null dans un Insert into
    Bonjour,

    Lorsque j’exécute le insert into et si la date n’est pas renseigné dans txtDateC j’ai une erreur "Incompatibilité de type" sur cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstr_DateC = IIf(IsNull(DateUS(txtDateC.Value)), "", DateUS(txtDateC.Value))

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    lstr_DateC = IIf(IsNull(DateUS(txtDateC.Value)), "", DateUS(txtDateC.Value))
     
    StrSql = "INSERT INTO [tbl Chèques] (RéfAdhérent, Emetteur, Banque, Montant, N°Chèque, DateC, ObservationsC)" & _
                  "values('" & lstr_RéfAdhérent & "'," & Chr(34) & Nz(lstr_Emetteur) & Chr(34) & "," & Nz(lstr_Banque) & ",'" _
                  & Nz(lstr_Montant) & "'," & Chr(34) & Nz(lstr_N°Chèque) & Chr(34) & "," & Nz(lstr_DateC) & "," _
                  & Chr(34) & Nz(lstr_ObservationsC) & Chr(34) & ");"
     
         DoCmd.RunSQL (StrSql)
    Comment exécuter le Insert Into si txtDatec n'est pas renseigné ?

    Merci pour votre aide.

    Salutations

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 76
    Par défaut
    Hello,

    Le problème est que si ta date est nulle, alors dans la requête SQL, il y a 2 virgule "," qui se suivent ce qui ne veut plus rien dire...

    donc tu pourrais faire quelque chose comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstr_DateC = IIf(IsNull(DateUS(txtDateC.Value)), "", DateUS(txtDateC.Value))
    Ajouter cette ligne dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     lstr_DateC = lstr_DateC & ","
    Et dans ton code SQL supprimer le Nz() et la "," après lstrDateC
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    StrSql = "INSERT INTO [tbl Chèques] (RéfAdhérent, Emetteur, Banque, Montant, N°Chèque, DateC, ObservationsC)" & _
                  "values('" & lstr_RéfAdhérent & "'," & Chr(34) & Nz(lstr_Emetteur) & Chr(34) & "," & Nz(lstr_Banque) & ",'" _
                  & Nz(lstr_Montant) & "'," & Chr(34) & Nz(lstr_N°Chèque) & Chr(34) & "," & Nz(lstr_DateC) & "," _
                  & Chr(34) & Nz(lstr_ObservationsC) & Chr(34) & ");"
     
         DoCmd.RunSQL (StrSql)
    Voilà en espérant t'avoir aider un peu

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonsoir subnox,

    Merci pour ta réponse, mais en faisant de cette manière j'ai une erreur de synthase.

    Salutations

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Je ne comprend pas pourquoi tu utilises la fonction NZ dans ton SQL et pas là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstr_DateC = IIf(IsNull(DateUS(txtDateC.Value)), "", DateUS(txtDateC.Value))
    J'aurais fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstr_DateC = NZ(DateUS(txtDateC.Value), "")
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Peux-tu ne rien mettre dans le champ date de ta table, si le vide n'est pas autorisé, c'est peine perdue.
    Essaie de mettre une date bidon en Nz pour voir, par exemple 1-1-1900
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  6. #6
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Bonsoir,

    Essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstr_DateC = NZ(DateUS(txtDateC.Value), "NULL")

Discussions similaires

  1. [Elementum] Insertion de valeurs nulles dans une colonne numérique d'un table
    Par cquilgars dans le forum Autres outils décisionnels
    Réponses: 2
    Dernier message: 17/07/2012, 11h50
  2. Insertion d'une valeur null dans une clé étrangère
    Par labib23dz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/03/2012, 10h24
  3. Insertion d'une valeur NULL dans un champs DATETIME
    Par jockhip12 dans le forum Requêtes
    Réponses: 5
    Dernier message: 17/02/2012, 12h58
  4. Réponses: 1
    Dernier message: 03/05/2011, 12h40
  5. Insertion valeur non de valeur NULL dans 'INSERT INTO'
    Par jacopasto dans le forum Développement
    Réponses: 4
    Dernier message: 25/11/2008, 23h09

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