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 :

impossible de faire des "insert into" depuis quelques jours


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut impossible de faire des "insert into" depuis quelques jours
    Bonjour
    je suis dans une grosse panade!

    Je viens de m’apercevoir que mes requêtes "insert into" ne fonctionnaient plus comme j'avais mis "DoCmd.SetWarnings" à False je ne voyais pas les messages d'erreur.
    après de nombreux test infructueux je suis retourné sur des vieilles bases et j'ai le même problème alors que les bases ont fonctionné jusqu'à il y a une quinzaine de jours.

    voici le message d'erreur, vous me direz cet évident c'est marqué de dans, mais je ne trouve aucune raison!:
    0 enregistrement ajouté suite à la violation de clé
    0 enregistrement ajouté suite à la violation de verrou
    0 enregistrement ajouté suite à la violation de règle de validité

  2. #2
    Expert confirmé

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

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

    Ce n'est pas possible de t'aider si tu ne postes pas le code et expliques le contexte.
    Normalement, il faut prendre le code VBA et essayer de débugger individuellement chaque requête => Créer une requête et coller dessus le code SQL et l'exécuter.


    Cordialement.

  3. #3
    Expert confirmé Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 286
    Par défaut
    Salut
    Les explications des différents msg d'erreur sont ici.

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    J'ai repris une requête.
    j'ai remplacé toutes les valeur de champ en dur.
    ça fonctionne.
    puis champ par champ remis les variables.
    je suis arrivé à un champ date (identique à d'autres champ date dans la table, avec les mêmes propriétés valeur null interdit à non, donc la valeur peut être vide.
    et là ça bloque impossible d'enregistrer avec une date vide.
    c'est bien dans la table que je dois avoir un problème

  5. #5
    Expert confirmé

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

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

    Effectivement, insérer une valeur NULL par code SQL n'est pas trivial.
    On peut voir le code s'il te plait.

    Cordialement.

  6. #6
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 955
    Par défaut
    bonjour,
    je suis arrivé à un champ date (identique à d'autres champ date dans la table, avec les mêmes propriétés valeur null interdit à non, donc la valeur peut être vide.
    et là ça bloque impossible d'enregistrer avec une date vide.
    comme l'a déjà dit mandresy:
    Ce n'est pas possible de t'aider si tu ne postes pas le code et expliques le contexte.
    donc, merci d'afficher le code qui fabrique la requête

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    513
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 513
    Par défaut
    bonsoir

    je vous remercie pour l'intérêt que vous me portez.

    voici la ligne de code qui me portait préjudice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                DoCmd.RunSQL "INSERT INTO Adherents ( id,date_modification,titulaire_cheque, commentaire, date_adhesion, nom, prenom, naissance, adresse, code_postal, ville,date_certificat_medical, sexe, portable, mail, fixe, nom_prenom )VALUES(" & ID & ",'" & Now() & "','" & [NOM].Value & "', '" & [commentaire] & "','" & [ADHESION].Value & "','" & [NOM].Value & "','" & [PRENOM].Value & "','" & [Naissance].Value & "','" & [ADRESSE].Value & "','" & [Code_postal].Value & "','" & [VILLE].Value & "','" & [date_certificat_medical].Value & "','" & SEXE & "','" & [Portable].Value & "','" & [MAIL].Value & "','" & [Fixe].Value & "','" & [NOM].Value & " " & [PRENOM].Value & "')"
    il y a 3 champs date dans la requête [naissance] obligatoirement renseigné, [adhesion] remplit automatiquement par formule now() et [ date certificat médical ] qui lui pouvait être vide avant d'avoir ce problème j'ai contourné ce problème en mettant une date bidon qui n'influe pas le raisonnement.

    le problème est que la base fonctionnait correctement avec un champ date vide et maintenant plus pourquoi ?

  8. #8
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 955
    Par défaut
    bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & "','" & [date_certificat_medical].Value & "','" &
    si la date est vide, les 2 apostrophes restent et le problème est que '' ce n'est pas égal à Null
    il serait préférable de faire comme ceci (sans les apostrophes en littéral):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & "'," & IIf(IsNull([date_certificat_medical].Value), "Null", Chr(39) & [date_certificat_medical].Value & Chr(39)) & ",'" &
    comme cela, le code renverra: ,Null, au lieu de ,'', si la date est vide et ,'01/10/2020', (par exemple) si la date est renseignée.
    Chr(39) correspond au caractère apostrophe (') on aurait pu aussi écrire : "'"

Discussions similaires

  1. Impossible de faire des insert dans la base h2 console à l'aide d'une Query et EntityManager
    Par informatica1989 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 15/11/2012, 22h45
  2. Réponses: 1
    Dernier message: 13/05/2008, 14h44
  3. impossible de faire une commande INSERT
    Par nirolioben dans le forum Requêtes
    Réponses: 4
    Dernier message: 16/11/2006, 16h14
  4. [EasyPHP] impossible de faire des URLS avec variable
    Par SandraG dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 30/03/2006, 17h38

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