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 :

Le code de la requête INSERT fonctionne mais n'écrit plus dans la table [AC-97]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut Le code de la requête INSERT fonctionne mais n'écrit plus dans la table
    Bonjour,

    Jusqu'à la semaine dernière tout semblait aller bien avec le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set db = CurrentDb
    db.Execute "INSERT INTO [KPI_HISTORY] " _
    & "(COUNTRY,JOB_FAMILY,TRANSVERSAL_SPECIFIC,MACRO_PROCESS,SCALE,KPI_NAME,UNIT,THRESHOLD_YELLOW,THRESHOLD_RED,DESCRIPTION,QUARTER,[YEAR],[VALUE]) VALUES " _
    & "('" & sKPI_COUNTRY & "', '" & sKPI_JOB_FAMILY & "', '" & sKPI_TRANSVERSAL_SPECIFIC & "', '" & sKPI_MACRO_PROCESS & "', '" & sKPI_SCALE & "', '" & sKPI_KPI_NAME & "', '" & sKPI_UNIT & "', '" & sKPI_THRESHOLD_YELLOW & "', '" & sKPI_THRESHOLD_RED & "', '" & sKPI_DESCRIPTION & "', '" & sKPI_QUARTER & "', '" & sKPI_YEAR & "', " & lKPI_VALUE & ")"              
    db.Close
    Quand je passe avec le debugger, le pointeur s'arrête bien sur cette ligne et la suivante, sans que le programme détecte la moindre erreur (je précise que j'ai évidemment mis plus tôt la ligne "On Error GoTo controlerror" avec le traitement adéquat). C'est à dire qu'a priori ça veut dire que l'écriture dans la table KPIP_HISTORY a marché.
    Pourtant, la table reste vide.
    Comme je l'ai dit, ça marchait encore il y a peu et j'utilise exactement le même code plus loin (sur la même table), qui lui fonctionne.

    Est-ce que ça vous est arrivé? Est-ce qu'il y a une raison logique à ce que le code soit sensé marcher (pas d'erreur) mais que l'INSERT ne se produise pas dans la table...?

    Merci beaucoup!

    BTB

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 129
    Par défaut
    Bonjour,

    Citation Envoyé par BornToBe Voir le message
    C'est à dire qu'a priori ça veut dire que l'écriture dans la table KPIP_HISTORY a marché.
    Pour qu'une erreur soit levée il me semble qu'il faut préciser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Db.Execute ..., dbFailOnError
    Mais en mode programmation il vaut mieux ne rien préciser du tout ainsi access s'arrête à la ligne en erreur avec le contexte actif

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    Citation Envoyé par nico84 Voir le message
    Mais en mode programmation il vaut mieux ne rien préciser du tout ainsi access s'arrête à la ligne en erreur avec le contexte actif
    Bonjour,
    Exactement, et c'est pour ça que je ne comprends pas et que je dis qu'il n'y a pas d'erreur: Access ne s'arrête pas sur cette ligne...

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    Bon, j'ai honte toussa toussa.
    En fait, je n'avais pas touché le code qui concerne l'exécution de la query, mais si une toute petite variable de rien du tout qui a fait que la valeur d'un des champs était vide (j'avais mal vérifié).

    Par contre, je reste surpris du résultat.
    Le champ qui était vide n'était pas obligatoire et il n'y a pas de message d'erreur: je ne me l'explique toujours pas...

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 146
    Par défaut
    reBonjour BornToBe,

    Le champ qui était vide n'était pas obligatoire et il n'y a pas de message d'erreur: je ne me l'explique toujours pas...
    1) Si le champ qui est vide n'est pas obligatoire, il ne devrait pas remonter une erreur. C'est logique.

    2) Si tu ne mets aucun paramètre derrière un Execute c'est normal qu'il ne remonte pas d'erreur. (cf tuto DAO... encore lui ! )

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Par défaut
    Citation Envoyé par loufab Voir le message
    1) Si le champ qui est vide n'est pas obligatoire, il ne devrait pas remonter une erreur. C'est logique.
    Mais s'il n'est pas obligatoire, il ne devrait pas poser de problème non-plus pour le remplissage: le champ est vide, voilà tout. Et si le problème vient du fait que le champ est NULL ou "", et que ça ne convient pas pour l'exécution de la requête SQL, j'étais en droit d'attendre une erreur si le cas se présentait...












    Mais je vais aller relire le tuto, allez.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/02/2010, 21h15
  2. [MySQL] Requête se déroule mais n'enregistre rien dans la base
    Par kikoyo dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 05/04/2009, 11h48
  3. Réponses: 2
    Dernier message: 16/10/2008, 11h08
  4. Réponses: 1
    Dernier message: 03/08/2007, 11h09
  5. [MySQL] Pb d'une requête insert quand il y a un ' dans un champs de texte
    Par Lolie11 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/06/2007, 11h57

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