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

Modélisation Discussion :

Activer désactiver automatiquement les relations access


Sujet :

Modélisation

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Activer désactiver automatiquement les relations access
    Bonjour tous le monde,

    Je travail sur une base de donnée access dans laquelle je met à jour des données. Pour cela, je dois mettre des fiches à jours et donc en supprimer pour remettre celles actualisées. Le problème c'est qu'elles sont sur des tables en relations les unes les autres, donc impossible de supprimer les données sans retirer les relations. Du coup j'enlève les relations, je supprime les fiches, je remet les nouvelles, je remet les relations.
    Ça marche très bien mais c'est long donc je me demandais si ce n'était pas possible de supprimer les relations et de les remettre ensuite exactement comme elles étaient de manière automatique

    Merci d'avance.

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 626
    Points : 726
    Points
    726
    Par défaut 2 Solutions
    Bonjour,

    Si je puis me permettre, si tu ne peux pas mettre à jour un ou plusieurs jeux d'enregistrement, c'est peut-être que ton schéma n'est pas cacher.

    Sinon 2 solutions
    Création d'un nouveau jeu d'enregistrements complet, puis suppression de l'ancien avec la relation qui indique la suppression en cascade. Ceci peut se faire avec "docmd.runsql".


    pour jouer sur les relations en VBA la doc officielle ici

    http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

    ou sur le site DVP ici un exemple sur lequel tu peux t'appuyer pour commencer

    http://www.developpez.net/forums/d60...-cle-primaire/

  3. #3
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour,

    Comme le dit Naphta, la logique imposerait de mettre à jour les fiches déjà existantes et modifiées.

    Ou alors, intégrer un champ "Date de mise à jour", créer les nouvelles fiches et supprimer ensuite les anciennes...

    Pierre

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci à vous deux pour vos réponses.

    J'ai testé pour la suppression en cascade mais forcement ça supprime toutes les infos qui résultaient de la relation entre les tables

    Je pense que vous avez raison, il est préférable de simplement mettre à jour les fiches. Auriez vous un moyen simple pour la maj à partir d'un champ référence qui me permettrai également de faire suivre les relations.

    En gros je voudrai dire à access:
    Si dans la table principale le champs référence = le champs référence de la table mise a jour --- alors--- tu modifie les autres champs contenus dans la table principale par ceux de la table maj

    Merci d'avance

  5. #5
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour.

    Je crois bien que c'est le principe de la requête Mise à jour.
    Je ne la maîtrise pas bien.
    Il va falloir tester.

    Pierre

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    les requètes de mise a jour fonctionnent que pour des données sur une meme table. Dans ce que je veux faire les information sont reparties sur au moins deux tables

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    je ne comprends pas tout ton explication Sidney75, tu parles de table principale, de table de mise à jour mais qu'en est-il des tables filles , quelles relations ont-elles avec la table de mise à jour ? Quels sont les champs à mettre à jour dans les tables principales et secondaires ?

    Bref, dans la mesure où tu disposes des relations il suffirait de créer une moulinette VBA qui récupère pour une table donnée les tables filles qui dépendent d'elle et qui seront également à mettre à jour.

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    En faite j'ai une table que j'appel la principale qui regroupe toutes les informations sur les produits qui sont à vendre, la clé primaire de cette table est la colonne "référence du produit".

    En parallèle j'ai une table en relation qui regroupe toutes les commandes que j'ai eux. C'est deux tables sont en relations par le champs "référence produit".

    Je voudrais mettre a jour les fiches de produit de maniére massive en important dans la table principale les nouvelles données, seulement je n'arrive pas a actualiser les données tout en gardant intact ma table commande.
    Je voudrais réactualiser tous les champs de ma table principale sauf "réference produit" qui me sert de relation entre les tables

    je sais pas si c'est plus claire j'ai un peu de mal a expliquer mon souci d'autant que je ne suis pas un pro de access, merci en tout cas de votre aide

  9. #9
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Personnellement, je ne comprends pas.

    Si j'ai dans la tale principale, la référence 001 dont l'intitulé est "Shampoing gras", par une requête mise à jour, on peut très bien dire que cet intitulé devient "Shampoing sec".

    Avez vous fait des essais avec une requête mise à jour?

    Pierre

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    oui ce que tu me dis en effet fonction le probleme c'est que j'ai des milliers de produits du coup je devrai faire presque autant de requêtes que de produit a mettre a jour.
    C'est pour cela que je supprime les relations entre mes tables, ensuite je supprime dans ma tbl principale les produits qui sont a mettre a jour, et je copie ensuite les mises a jours.
    Ce processus marche tres bien mais je me demandais juste si au lieu de devoir supprimer une par une les relations pour ensuite les remettre exactement comme avant, il n'y avais pas un moyen automatique

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    d'accord Sidney75,

    d'après ce que je comprends, il est possible que tu n'aies dans la table des commandes que la clé des produits et non la clé du produit et le prix au moment de la saisie de la commande; par conséquent lorsque tu mets à jour les infos de la table des produits et notamment le prix; la table des commandes est aussi modifiée. Le montant total d'une commande ne reflète le prix d'achat ou de vente au moment de la saisie de la commande.
    Si il s'agît de cela il faut juste créer un champ Prix dans la table des commandes dans lequel sera récupéré le prix des produits au moment de la saisie des commandes; la mise à jour des articles ne mettra plus en cause les infos des commandes.

    Dans le cas contraire, essayer une requête du genre :
    Pour l'exemple, j'appelle Produits la table principale et MisaJour la table contenant les nouvelles données. Chacune de ces tables disposent des champs Reference, Designation, PrixUnite

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE Produits INNER JOIN MisaJour ON MisaJour.Reference=Produits.Reference
    SET Produits.Designation=MisaJour.Designation, Produits.PrixUnite=MisaJour.PrixUnite;

Discussions similaires

  1. [AC-2010] Les relations Access 2010
    Par fella.crazygirl dans le forum Access
    Réponses: 8
    Dernier message: 27/12/2012, 21h07
  2. Réponses: 1
    Dernier message: 05/10/2007, 16h56
  3. activer / désactiver toutes les contraintes
    Par clawhammer dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2006, 14h58
  4. Access m'ajoute une table ds les relations ?!
    Par Fredd_b dans le forum Access
    Réponses: 6
    Dernier message: 06/01/2006, 17h39
  5. [VBA-Access] Activer/Désactiver F11 en code
    Par Ricou13 dans le forum VBA Access
    Réponses: 7
    Dernier message: 19/12/2005, 12h06

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