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

Access Discussion :

Insertion de données dans une table et mise à jour dans des tables annexes. avec Macro de données ou VBA [AC-2010]


Sujet :

Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Insertion de données dans une table et mise à jour dans des tables annexes. avec Macro de données ou VBA
    Bonjour
    Je dispose de 4 tables AFFECTATIONS, HISTORIQUE_AFFECTATIONS, Tbl_BASCULEMENT et FONCTIONS
    voir pièce jointe
    tables et codes.docx
    Ce que je veux arriver à faire c’est à chaque insertion dans la table AFFECTATIONS, dupliquer l’enregistrement dans la table HISTORIQUE_AFFECTATIONS. Mais au niveau de la Table Tbl_BASCULEMENT, je ne veux insérer que les enregistrements des utilisateurs qui sont des gestionnaires. J’ai donc recours à la table FONCTIONS pour effectuer ce contrôle.
    Je suis passé dans un premier temps par les marcro de table. Je parviens à dupliquer les enregistrements dans la table HISTORIQUE_AFFECTATIONS, mais au niveau de la table Tbl_BASCULEMENT, la condition que j’ai mise n’est pas respectée vu que toutes les insertions
    que j’ai effectuées jusque-là ont été insérées également dans cette table qu’il s’agisse de gestionnaire ou non.
    J’ai tenté la même chose en VBA. Mais c’est pareil. L’autre souci au niveau de cette table c’est le champ Bascule sensé recevoir une valeur dans la liste suivante (NON EFFECTUE, PARTIEL, EFFECTUE)
    Mais qui en lieu et place reçoit -1 au lieu de « NON EFFECTUE » (Valeur définie dans mes tests).

  2. #2
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour Kanigui,

    Tu pourrais créer une fonction qui retournerait "Vrai/Faux" basé sur ta table fonction, le champ gestionnaire. fonctionX = rst("Gestionnaire"). Dans la DataMacros "AfterInsert" une macro si fonctionX = Vrai Ajout à la table Tbl_BASCULEMENT...

    Pour l'autre problème, d'où provient la valeur que tu insère dans le champ?
    L’autre souci au niveau de cette table c’est le champ Bascule sensé recevoir une valeur dans la liste suivante (NON EFFECTUE, PARTIEL, EFFECTUE)
    Mais qui en lieu et place reçoit -1 au lieu de « NON EFFECTUE » (Valeur définie dans mes tests).
    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Robert1957 Voir le message
    Pour l'autre problème, d'où provient la valeur que tu insère dans le champ?
    Bonjour Robert,
    Merci pour la réponse. Je vais essayer avec la fonction.
    Pour ce qui est de la table TBL_BASCULEMENT, en la créant, j'ai défini une liste de valeurs au niveau du champ bascule de sorte à avoir une liste déroulante à partir de laquelle il sera plus aisé de sélectionner les différents statuts de l'affectation. Les valeurs possibles sont: "NON EFFECTUE", "PARTIEL", "EFFECTUE". Ces valeurs permettent de définir si la passation des charges a été correctement effectuée, partiellement ou pas du tout.

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour Kanigui,

    Les valeurs possibles sont: "NON EFFECTUE", "PARTIEL", "EFFECTUE".
    Dans ta table, pour ce champ en mode création tu as bien: Origine Source = Liste valeurs et Contenu = "NON EFFECTUE";"PARTIEL";"EFFECTUE" je ne vois vraiment pas pourquoi tu aurais comme résultat -1 quand tu sélectionnes une valeur dans ce champ! Il doit y avoir un détail qui m'échappe ou que je ne peux voir avec les infos que j'ai désolé!
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Bonsoir Robert,

    Je crois que le problème se situe au niveau de mes tables. En les créant j'avais utilisé pour les champs faisant référence à d'autres tables (clés étrangères) comme Origine source les tables en en question. (Au niveau de la table affectation, j'avais utilisé comme source pour le champ Refuser, la table utilisateur, de sorte à avoir lors de la saisie de données les noms des utilisateurs plutôt que leurs identifiants. C'est après avoir supprimé ces paramètres que les choses se sont déroulées normalement.
    Cependant un autre problème. Lorsque j’essaie de modifier le contenu de ma table affectation, j'obtiens un message d'erreur :
    "Un argument de la fonction de mise à jour n'est pas valide. Le nom du champ doit être fourni comme valeur chaîne entre guillemets". Auriez-vous une idée de ce qui pourrait causer ce désagrément?
    Merci

  6. #6
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour Kanigui,

    Faudrait voir d'où vient l'erreur mais un indice est la manière de nommer un recordset:
    Champ(0)
    Champ("NomDuChamp")
    Champ![NomDuChamp]

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Bonsoir Robert,

    Encore une fois merci de trouver le temps de répondre à mes sollicitations.
    J'ai trouvé ce qui provoquait le message d'erreur. Il s'agissait d'une marcro de données Avant Maj que je n'avais pas achevée.
    Merci et excellente soiréé

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Macro de données après MAJ
    Bonjour, J'ai encore un petit souci au niveau de la mise en œuvre des Macro de données. Je voudrais exécuter des insertions, modification ou suppression dans une table annexe en fonction de la mise à jour dans une table principale.
    Ma table principale est la table affectation(RefUser, RefDirection, RefFonction,RefAgence,DateAff). Pour chaque insertion et Modification dans cette table, j'enregistre les nouvelles données dans la table historique_affectation qui est la réplique de la table Affectation avec un champ observation. Maintenant au niveau de la table Basulement qui est celle des agent bénéficiant du profil de gestionnaire, il me faut faire des contrôles en cas de modification. Je dois m'assurer d'abord que l'agent muté est présent dans la table basculement et qu'il appartient à la catégorie indiquée auquel cas je fais une mise à jour, s'il n'y figure pas je fais une insertion. S'il s'agit d'un gestionnaire qui change de fonction pour un poste différent de un gestionnaire je dois pouvoir le supprimer de ma table basculement (ce dernier schema n'a pas été élaboré vu que le premier me pose un souci).
    Merci d'avance pour votre aide. ci-dessous ma macro après maj sur la table affectation Macro_donnees_apresMaj.txt

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

Discussions similaires

  1. Mise à jour dans une table de l'AS400
    Par Elise02 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 12/03/2009, 08h38
  2. mise à jour dans une table
    Par christeldum dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 20/02/2009, 09h16
  3. Insertion d'une mise à jour dans une création de vue
    Par Ptite_Tigresse dans le forum Langage SQL
    Réponses: 0
    Dernier message: 30/08/2007, 12h34
  4. Réponses: 2
    Dernier message: 14/05/2007, 10h45
  5. Mise à jour dans une table
    Par manucha dans le forum Oracle
    Réponses: 4
    Dernier message: 01/03/2007, 11h11

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