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 :

Fusionner / Mettre à jour plusieurs bases de données [AC-2016]


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Fusionner / Mettre à jour plusieurs bases de données
    Bonjour à tous,

    Je développe depuis plusieurs mois une base de donnée pour mon entreprise via Access.
    Ce n'est pas du tout mon métier mais j'ai malgré tout réussi à développer quelque chose de correct, notamment grâce à ce forum.... donc merci à tous !

    Je vais passer au déploiement mais un problème subsiste pour moi. Je viens de passer 4 heures à faire des recherches mais je n'ai rien trouvé qui corresponde vraiment.

    Le CRM va être déployé dans 3 bureaux avec plusieurs utilisateurs par bureau. Dans chaque bureau, la base sera scindée en deux : base dorsale sur le réseau local / base frontale sur chacun des postes clients.
    Les bases de données n'étant pas reliées entre elles via internet, chaque bureau va mettre à jour sa base de données en local (ajout, modif, suppression) et il faudra donc régulièrement rassembler les données.
    Je m'étais dit que j'aurais "simplement" à récupérer les fichiers des 2 autres bureaux, fusionner les 2 bases avec celle que j'utilise dans mon bureau puis de leur renvoyer la base complétée.

    J'ai passé la journée à faire des essais mais ce n'est finalement pas si simple que ça...

    Ce que j'aimerais : Une méthode pour que je rassemble tous les mois les données des 2 autres bureaux, que je les ajoute à ma base (ajout des données, mise à jour des informations modifiées par les autres bureaux, etc..) et que je puisse leur renvoyer la base mise à jour avec les données des 3 bureaux.

    J'espère que mes explications sont assez claires. N'hésitez pas si vous avez besoin de précisions.

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 181
    Points : 5 512
    Points
    5 512
    Par défaut
    Bonjour,

    Question préalable: se pourrait-il qu'au cours d'une période entre 2 fusions, 2 bureaux différents aient modifié un même enregistrement, par exemple l'adresse d'un certain Jean Martin ?
    Si c'est le cas, il faudra disposer d'une méthode pour déterminer laquelle des modifications est à accepter.

    Cordialement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour EricDgn,

    Merci pour votre réponse.

    Quelques précisions concernant la structure du projet. Il comprend 3 tables : 1 x table principale "Client" et 2 tables secondaires "Contact" + "Rapport" (liées à la table "Client").

    Pour répondre à votre question, chaque client est affecté à un seul bureau et ne sera créé ou modifié que par celui-ci.

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 181
    Points : 5 512
    Points
    5 512
    Par défaut
    Si chaque bureau à ses clients, personnellement je laisserais chaque bureau avec son application et sa base propre et je ferais au niveau central une application complémentaire qui serait liée aux 3 bases rapatriées, sans les fusionner dans une base unique. Il est alors tout à fait certain que l'on n'écrase pas par inadvertance l'un ou l'autre enregistrement. Il n'est pas compliqué de faire des requêtes UNION qui rassemble les données des tables semblables.
    Cordialement.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Les requêtes UNION permettent en effet de rassembler les données mais je perds le principe de base du projet. L'utilisation de 2 applications n'est pas en adéquation avec ce qui m'est demandé.

    Est-ce qu'il y aurait d'autres solutions ?

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 181
    Points : 5 512
    Points
    5 512
    Par défaut
    S'il faut absolument fusionner plusieurs bases gérées séparément il ne pourra pas être fait appel à des champs de type NumAuto: au moment de la fusion, certains des nouveaux enregistrements ayant exploité la numérotation automatique auront la même valeur, ce qui va provoquer un blocage.
    Pour la fusion, il faudra commencer par ajouter les nouveaux enregistrements, ensuite effectuer les mises à jour.
    La mise à jour est plus facile/rapide s'il y a dans chaque table un champ qui enregistre le moment de la dernière modification d'un enregistrement.
    Il faut procéder en commençant par les tables dont les enregistrements alimentent d'autres tables.
    Cordialement.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    Ce que tu veux faire est tellement pénible que M$ l'a enlevé de Access depuis la version 2007.
    Dans ton malheur tu as un peu de chance c'est que tes données sont clairement séparées donc tu n'as pas à faire de la mise à jour, juste fusionner le tout.
    Comme tu ne veux pas avoir 2 applications séparées, je suppose que cela veut dire que tu veux ne conserver qu'une dorsale où tu vas avoir tes donnée fusionnées.

    Je te suggère le processus suivant.
    Tu vides toutes les tables de ta BD Fusion.
    Tu ajoutes toutes les données d'une des BD source.
    Si tu as utilisé la numérotation automatique, il faut que dans chaque table avec un numéro auto, tu ajoutes un champ entier long nommé quelque chose comme ClefAvantFusion.
    Lors de l'importation des données, tu vas écrire le numéro auto actuellement dans la table dans ce champ.
    Et tu vas te servir de la correspondance ClefAvant <-> Clef pour faire les chargements.

    Et comme l'as dit EricDgn il faut respecter l'ordre des relations.

    Si j'ai bien compris ton modèle cela devrait être :

    1. "Client"
    2. "Contact"
    3. "Rapport"


    Donc tu charges tes clients.
    Puis tu charges tes contacts en récupérant le nouveau numéro de client en te basant sur ClefAvantFusion pour le trrouver et ainsi associer les contacts au bon client.

    Et tu fais la même chose pour ton rapport.

    Une fois la fusion faite, tu peux retourner la dorsale à chacun des bureaux pour remplacer leur dorsale.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Candidat au Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Avril 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2019
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Après plusieurs essais, la méthode fonctionne parfaitement !!

    Merci à tous les deux pour votre aide

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

Discussions similaires

  1. Comment mettre à jour une base de données access
    Par nicolas2603 dans le forum VB.NET
    Réponses: 11
    Dernier message: 16/10/2007, 14h40
  2. [C#2.0] Mettre à jour la base de données à partir d'une DataTable
    Par Rodie dans le forum Accès aux données
    Réponses: 6
    Dernier message: 16/05/2007, 14h24
  3. Réponses: 2
    Dernier message: 27/04/2007, 13h45
  4. Réponses: 1
    Dernier message: 15/09/2006, 11h24
  5. [SQL SERVER] Mettre à jour une base de donnée
    Par grellierj dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/05/2006, 11h33

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