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 :

Automatiser la MaJ des tables de correspondances


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Par défaut Automatiser la MaJ des tables de correspondances
    Bonjour à tous,
    Je possède une table client (T_Client) dans laquelle j'ajoute des données chaque semaine. Dans cette table un champ, "NomClient" avec le nom de mes clients.

    J'ai une table de correspondance (TCor_Client) qui comporte des données relatives au client (et dont la clé primaire est le "NomClient")

    Il m'arrive donc d'avoir de nouveaux clients (heuresement ), ainsi pour continuer d'avoir mes infos à jour j'ai besoin, pour chaque nouveau client de renseigner la "TCor_Client".

    Aujourd'hui je procède de la sorte: j'ai créée une requête de correspondance (QCor_Client) qui me remonte les lignes pour lesquelles un "NomClient" n'a pas de correspondance.

    Pratique mais fastidieux car j'ai aujourd'hui une vingtaine de tables de correspondances à mettre à jour de façon aléatoire, car certaines semaines il y a aucune modification à faire, mais je dois tout de même ouvrir mes 20 tables de correspondances pour vérifier.

    J'aimerais donc automatiser la procédure de la façon suivante:
    - Pour chaque requête de correspondance
    - Si une requête de correspondance me retourne une valeur (si pas de MaJ nécessaire alors aucun champ n'apparaît)
    - Alors la macro m'ouvre la table de correspondance en question et me colle les enregistrements à mettre à jour
    - Ne me restera plus qu'à renseigner les champs

    Je pense que le VBA est nécessaire (mais je suis novice).
    Si une fonctionnalité native Access permet de faire ça je suis preneuse, sinon une bonne âme pourrait-elle m'aider pour le code VBA?

    Bien à vous tous,
    Julie

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 178
    Par défaut
    bonjour

    Lorsque tu dis :
    mais je dois tout de même ouvrir mes 20 tables de correspondances
    cela veux dire que tu as une tables par correspondance client ??

  3. #3
    Membre actif
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Par défaut
    Bonjour Jean-Yves,
    Non en fait j'ai des tables de correspondances pour plusieurs type d'info. Une seule pour les clients je vous rassure


  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Par défaut
    Bonjour,

    Il me semble que vous avez pris le problème à l'envers.

    Lorsque vous créez un enregistrement dans T_client, vous devez pouvoir sélectionner le client correspondant dans TCor_Client; si le client n'existe pas vous devez le créer dans TCor_Client, avant de pouvoir l'utiliser dans T_Client.

    Utilisez l'intégrité référentielle (outils de base de données, Relation) pour forcer la correspondance.

    Si vous utilisez un formulaire, utilisez une zone de liste déroulante pour le NomClient de T_Client (la requête sélectionnant les NomClient de TCor_Client), ajoutez un bouton qui appelle le formulaire de création de TCor_Client et qui actualise la zone de liste.

    En espérant que cela vous sera utile.

  5. #5
    Membre actif
    Inscrit en
    Février 2010
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 70
    Par défaut
    Bonsoir Shanur et merci pour votre réponse.
    Effectivement l'intégrité référentielle constitue une solution pour certaines tables de correspondances.

    Cependant je possède également des tables de correspondances pour des données que j'extraie d'un ERP.
    Chaque extrait comporte en moyenne 14000 lignes.
    Parmi ces lignes, la majorité des champs sont déjà "mappées" mais parfois quelques uns ne le sont pas.

    C'est ainsi que chaque semaine je dois ouvrir plusieurs tables de correspondances (que je n'alimente pas moi même mais via un extrait) pour vérifier que tout est correctement "mappé"

    D'où le besoin de la petite macro...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2004
    Messages : 37
    Par défaut
    Bonjour,

    C'est au niveau de l'extraction que devrait se trouver la solution.

    Vous devez créer une table "Rejets" du même format que la table dont sont extraites les données.

    Au moment de l'extraction, vous testez la correspondance. S'il n'y a pas correspondance, vous copier les données dans la table "Rejets" si possible sans les traiter.

    A la fin du processus d'extraction, vous disposez d'une table qui vous permet de traiter tous les enregistrements rejetés. Chaque fois qu'un enregistrement est traité, vous le supprimer de la table.

    Un autre point, l'utilisation de NomPrenom comme zone de concordance me fait tiquer vu la quantité de données traitées. Il vaudrait mieux utiliser un identifiant unique et s'il s'agit de données bancaires, utiliser la communication communication structurée.

Discussions similaires

  1. [AC-2010] Afficher la date de MAJ des tables dans une autre table
    Par freeman3869 dans le forum Access
    Réponses: 12
    Dernier message: 28/04/2015, 11h07
  2. alimentation des tables de correspondances
    Par cyriane dans le forum Visual Studio
    Réponses: 0
    Dernier message: 04/06/2012, 11h47
  3. [AC-2003] Automatiser la gestion des tables liées
    Par Heruvor dans le forum Access
    Réponses: 1
    Dernier message: 23/12/2010, 14h54
  4. macro langage pour automatiser le traitement des tables
    Par SASMetrics dans le forum Macro
    Réponses: 7
    Dernier message: 29/01/2010, 15h51
  5. Pas de MAJ des tables dans OEM
    Par LIT016 dans le forum Entreprise Manager
    Réponses: 2
    Dernier message: 08/05/2006, 00h08

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