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 :

Requête mise à jour avec condition IN [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut Requête mise à jour avec condition IN
    Bonjour,

    J'aimerais mettre à jour les données d'une table depuis les données d'une requête.
    Cette requête s'appuie sur un fichier Excel lié.
    Dans ce fichier il y a des ID_Promotion et les ID_Articles les composants ainsi que la DateDebut, DateFin et Mois de l'ID_Promotion
    Mon but est de mettre à jour la partie Promotion, je cherche donc à regrouper les informations par ID_Promotion pour ne pas faire la même mise à jour n fois.

    J'ai découvert la condition IN dont j'arrive à me servir pour isoler mes ID_Promotion.
    Le problème est que je n'arrive pas à m'en servir pour récupérer les informations d'autres champs de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_Promotion_Et_Annee SET T_Promotion_Et_Annee.Mois = R_ImportPromo_Norme!Mois, T_Promotion_Et_Annee.DateDebut = R_ImportPromo_Norme!DateDebut, T_Promotion_Et_Annee.DateFin = R_ImportPromo_Norme!DateFin
    WHERE (((T_Promotion_Et_Annee.ID_Promotion_Et_Annee) In (SELECT T_Promotion_Et_Annee.ID_Promotion_Et_Annee      FROM R_ImportPromo_Norme      INNER JOIN T_Promotion_Et_Annee      ON (R_ImportPromo_Norme.ID_NomPromotion = T_Promotion_Et_Annee.ID_NomPromotion)      AND (R_ImportPromo_Norme.Annee = T_Promotion_Et_Annee.Annee))));
    Mais il me retourne les messages suivants :

    "Entrer une valeur de paramètre :
    R_ImportPromo_Norme!Mois"
    R_ImportPromo_Norme!DateDebut
    R_ImportPromo_Norme!DateFin
    Et il m'indique qu'il ne peut pas faire les modification à la suite de violations de la règle de validation.

    En fait, à l'affichage, je viens de voir que les informations pour le mois semblent provenir de la table T_Prromotion_Et_Annee et non de la requête T_Import_Promo_Norme...


    Et voici le code (merci jimay) qui me permet de mettre à jour un champ oui/non. Il marche nikel.
    C'est ce que j'ai essayé d'adapter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT * 
    FROM T_Promotion_Et_Annee 
    WHERE ID_Promotion_Et_Annee IN ( 
        SELECT T_Promotion_Et_Annee.ID_Promotion_Et_Annee 
        FROM R_ImportPromo_Norme 
        RIGHT JOIN T_Promotion_Et_Annee 
        ON (R_ImportPromo_Norme.ID_NomPromotion = T_Promotion_Et_Annee.ID_NomPromotion) 
        AND (R_ImportPromo_Norme.Annee = T_Promotion_Et_Annee.Annee) 
        WHERE (((R_ImportPromo_Norme.ID_NomPromotion) IS NULL)) 
        OR (((R_ImportPromo_Norme.Annee) IS NULL)))

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 116
    Points : 5 242
    Points
    5 242
    Par défaut syntaxe update
    Bonjour,

    Pour un update complexe tu peux t'inspirer de la méthode proposée dans cette file

  3. #3
    Membre habitué Avatar de jimay
    Profil pro
    Inscrit en
    Août 2006
    Messages
    146
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2006
    Messages : 146
    Points : 178
    Points
    178
    Par défaut
    Salut,

    pour faire un update mutliple à partir d'une requete de sélection c'est un peu galère. J'ai essayé de pondre un truc mais j'ai rénoncé pour le moment (pas le temps ^^ stage oblige..) je ne peux que te conseiller ce post pour te guider.

    Si tu as d'autres erreurs n'hésite pas

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Pour pouvoir mettre à jour des champs de T_Promotion_Et_Annee à partir de champs de R_ImportPromo_Norme,
    il faudrait que la requête UPDATE se fasse sur une jointure entre les deux.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE T_Promotion_Et_Annee INNER JOIN R_ImportPromo_Norme ON ...
    SET ....
    WHERE ...
    J'imagine que si tu as opté pour la clause IN, c'est que tu as eu un message te disant qu'il fallait une requête qui puisse être mise à jour.
    R_ImportPromo_Norme est une requête de regroupement peut-être ?

    Comme le nom de la requête R_ImportPromo_Norme n'apparaît pas entre UPDATE et SET, elle est inconnue dans la requête mise à jour.
    Il va donc te falloir utiliser les fonctions domaine pour récupérer la valeur.
    Remplace par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET T_Promotion_Et_Annee.Mois = R_ImportPromo_Norme!Mois
    par quelquechose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET T_Promotion_Et_Annee.Mois = Dlookup("Mois","R_ImportPromo_Norme", "ID_NomPromotion =" & T_Promotion_Et_Annee.ID_NomPromotion & " AND Annee =" & T_Promotion_Et_Annee.Annee)
    A+

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Merci pour vos réponses

    Je croyais qu'une fonction de domaine utilisait beaucoup de ressources?
    (je m'en étais beaucoup servi dans certains formulaires et c'était carrément horrible en temps de traitement)
    C'est la seule solution?

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    C'est vrai que les fonctions domaine sont longues à l'exécution.
    Mais c'est souvent le moyen simple d'obtenir une requête qui puisse être mise à jour.

    Si la requête R_ImportPromo_Norme n'est une requête de regroupement, il y a peut-être moyen de faire une requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE T_Promotion_Et_Annee INNER JOIN Table_liee_Excel ON ...
    SET ....
    WHERE ...

    Sinon créer une table intermédiaire à partir de R_ImportPromo_Norme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM R_ImportPromo_Norme INTO Table_intermediare
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE T_Promotion_Et_Annee INNER JOIN Table_intermediare ON ...
    SET T_Promotion_Et_Annee.Mois = Table_intermediare.Mois, ...
    WHERE ...
    (Il n'y aura peut-être plus besoin de WHERE)

    A+

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Merci pour les exemples (bien pratique pour moi)
    Créer des tables temporaires prend de la place (si on fait pas mal de manip du genre)?
    Faut-il dans ce cas là les supprimer après utilisation?

  8. #8
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    C'est vrai que créer des tables temporaires peut prendre de la place.
    Mais le gain de temps peut être significatif.

    J'ai développé une petite appli au boulot, dans laquelle je doit consolider plein de données issues de requêtes de regroupement.
    Je passe par des tables temporaires et après je fais des requêtes UPDATE.
    Je ne détruis pas les tables temporaires car mes requêtes UPDATE y font références.
    Par contre je les vide avant de compacter la base.
    Dans cette appli j'ai privilégié la performance au détriment de l'encombrement.

    Il faut que tu testes les deux possibilités. Dlookup et table temporaire.

    Sinon, est-ce que R_ImportPromo_Norme est une requête de regroupement ?

    A+

  9. #9
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Je commence à y voir plus clair, merci.

    R_Import_Promo_Norme n'est pas une requête de regroupement.

  10. #10
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Est-ce que tu as un problème si la requête est sous cette forme ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE T_Promotion_Et_Annee INNER JOIN R_ImportPromo_Norme ON ...
    SET T_Promotion_Et_Annee.Mois = R_ImportPromo_Norme.Mois, ...
    WHERE ...
    Si ça se trouve ça marche.

  11. #11
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Effectivement ça marche mais Access met à jour 137 enregistrements alors qu'il n'y en a que 11 => il fait plusieurs fois les mêmes. C'est pour ça que je cherche à faire un regroupement ou quelque chose du genre.

    Par la suite je vais avoir plusieurs milliers d'enregistrement, Access devra donc mettre à jour plusieurs dizaines de milliers d'enregistrements. Cela risque-t-il d'être long?

    Voici le code modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_Promotion_Et_Annee INNER JOIN R_ImportPromo_Norme ON (T_Promotion_Et_Annee.Annee = R_ImportPromo_Norme.Annee) AND (T_Promotion_Et_Annee.ID_NomPromotion = R_ImportPromo_Norme.ID_NomPromotion) SET T_Promotion_Et_Annee.Mois = R_ImportPromo_Norme!Mois, T_Promotion_Et_Annee.DateDebut = R_ImportPromo_Norme!DateDebut, T_Promotion_Et_Annee.DateFin = R_ImportPromo_Norme!DateFin
    WHERE (((T_Promotion_Et_Annee.ID_Promotion_Et_Annee) In (SELECT T_Promotion_Et_Annee.ID_Promotion_Et_Annee FROM R_ImportPromo_Norme INNER JOIN T_Promotion_Et_Annee ON (R_ImportPromo_Norme.ID_NomPromotion = T_Promotion_Et_Annee.ID_NomPromotion) AND (R_ImportPromo_Norme.Annee = T_Promotion_Et_Annee.Annee))));

  12. #12
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Je me trompe peut-être, mais je ne suis pas sûr que la clause IN réduise le nombre d'enregistrements.

    A quoi sert le champ ID_Promotion_Et_Annee ?
    C'est la concaténation de ID_Promotion Et Annee ?

    Les doublons ID_NomPromotion/Année sont dans R_ImportPromo_Norme à priori.
    Qu'est-ce qui les différencie ?

  13. #13
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Effectivement, dans ce cas , la condition IN ne permet pas de réduire le nombre d'enregistrements.

    Pour la petit histoire :
    Je m'en étais servi dans une requête plus simple où je créais une requête de regroupement contenant des clés.
    En face, j'avais une table avec ces mêmes clés mais qui apparaissaient de façon unique. Donc quand je parcourais ma table, grâce à la condition IN, je ne passais qu'une seule fois sur un même enregistrement de la table.


    ID_Promotion est un nom de promotion unique.
    Et comme une promotion peut être faite plusieurs années de suite, j'ai mis dans une même table ID_Promotion et Annee => ce sont ma clé primaire double => comme je ne suis pas très fort en Access, j'ai créé un champ supplémentaire sans doublon de type NuméroAuto = ID_Promotion_Et_Annee.
    Effectivement j'aurais pu passer par une concaténation de ID_Promotion_Et_Annee mais cela me donnait plus de souplesse.

    Les doublons ID_Promotion/Annee sont dans R_ImportPromo_Norme car :
    1. R_ImportPromo_Norme représente la table ImportPromo qui est un fichier Excel lié => R_Import_Promo_Norme me permet d'avoir le même fichier en retravaillé (avec des normes)
    2. Le fichier lié contient les Promotions avec leurs années et la composition de ces promotions (les articles) => d'où les doublons et donc ceux de R_ImportPromo_norme

    ps : au passage, je te remercie à nouveau du temps que tu prends pour moi.
    Si ce n'est pas possible de faire ça simplement, je peux voir pour créer des fichiers supplémentaires depuis le fichier Excel avec des macro sous Excel.
    Simplement, je trouvais intéressant d'apprendre à faire ça sous Access que je découvre.

  14. #14
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Maintenant que j'ai compris où étaient les doublons, il y a moyen de restreindre le nombre de mise à jour.

    Deux conditions WHERE possibles.
    La condition devra être Vrai uniquement pour le plus petit article (que le champ soit alphanumérique ou numérique n'a pas d'importance)

    Avec clause IN (sous-requête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WHERE (R_ImportPromo_Norme.ID_Article) 
          IN (SELECT Min(tmp1.ID_Article) FROM R_ImportPromo_Norme As tmp1
    	   WHERE tmp1.ID_NomPromotion=T_Promotion_Et_Annee.ID_NomPromotion AND tmp1.Annee=T_Promotion_Et_Annee.Annee
             )
    Avec clause <= ALL (sous-requête)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WHERE (R_ImportPromo_Norme.ID_Article) 
          <= ALL (SELECT tmp1.ID_Article FROM R_ImportPromo_Norme As tmp1
    	       WHERE tmp1.ID_NomPromotion=T_Promotion_Et_Annee.ID_NomPromotion AND tmp1.Annee=T_Promotion_Et_Annee.Annee
    	      )
    A+

  15. #15
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Tu pourrais me donner un exemple pour savoir où mettre cette partie de code?
    Je n'arrive pas à m'en servir...

  16. #16
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    A la place de ton WHERE actuel.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE T_Promotion_Et_Annee INNER JOIN R_ImportPromo_Norme ON (T_Promotion_Et_Annee.Annee = R_ImportPromo_Norme.Annee) AND (T_Promotion_Et_Annee.ID_NomPromotion = R_ImportPromo_Norme.ID_NomPromotion)
    SET T_Promotion_Et_Annee.Mois = R_ImportPromo_Norme!Mois,
        T_Promotion_Et_Annee.DateDebut = R_ImportPromo_Norme!DateDebut,
        T_Promotion_Et_Annee.DateFin = R_ImportPromo_Norme!DateFin
    WHERE (R_ImportPromo_Norme.ID_Article) 
          IN (SELECT Min(tmp1.ID_Article) FROM R_ImportPromo_Norme As tmp1
    	   WHERE tmp1.ID_NomPromotion=T_Promotion_Et_Annee.ID_NomPromotion AND tmp1.Annee=T_Promotion_Et_Annee.Annee
             )
    Il faut remplacer le champ ID_Article par ton champ article.

    Un exemple concret.
    Tu prends la base exemple Comptoir.mdb (il y a une version fractionnée dans ce tutoriel )
    Dans la table Commandes tu ajoutes un champ remise (Oui/Non).
    On veut mettre ce champ à Vrai si au moins une des lignes d'une commande bénéficie d'une remise.
    (On suppose qu'une autre requête a réinitialisé le champ à False dans toute la table Commandes)

    1ere requête
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE Commandes INNER JOIN [Détails commandes] ON Commandes.[N° commande] = [Détails commandes].[N° commande]
    SET Commandes.clAremise = True
    WHERE ((([Détails commandes].[Remise (%)])>0));
    -> plus de 800 mises à jour

    2e requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE Commandes INNER JOIN [Détails commandes] ON Commandes.[N° commande] = [Détails commandes].[N° commande]
    SET Commandes.remise = True
    WHERE ((([Détails commandes].[Remise (%)])>0) 
       AND (([Détails commandes].[Réf produit]) In 
            (SELECT Min(Tmp1.[Réf Produit]) FROM [Détails commandes] As Tmp1 
             WHERE Tmp1.[N° commande]=Commandes.[N° commande] AND Tmp1.[Remise (%)]>0
             )
          ));
    -> moins de 400 mises à jour
    C'est parce que avec ce critère supplémentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ([Détails commandes].[Réf produit]) In 
            (SELECT Min(Tmp1.[Réf Produit]) FROM [Détails commandes] As Tmp1 
             WHERE Tmp1.[N° commande]=Commandes.[N° commande] AND Tmp1.[Remise (%)]>0
             )
    je me limite aux enregistrements de [Détails commandes] qui bénéficient d'une remise et qui concernent la plus petite référence produit.
    Tu remarquera que la sous-requête de la clause IN reprend dans son WHERE le critère de la requête principale ([Remise (%)]>0) et la jointure entre les deux tables sur le champ [N° commande].
    C'est pas facile à maintenir. Si dans six mois je rajoute un critère à ma requête principale, il faut que je pense à le mettre dans la sous-requête.
    On peut facilement se faire piéger.

    Maintenant, reste à vérifier que faire moins de mises à jour grâce à un IN (sous-requête) est plus rapide que plus de mises à jour sans IN.

    Dans tous les cas, l'option table temporaire (ou intermédiaire) est plus lisible et plus facile à maintenir pour des requêtes mise à jour.
    Surtout si tu as besoin de faire des regroupements.

    A+

  17. #17
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    Merci beaucoup!
    ça c'est clair comme exemple

    Si j'ai bien compris, d'une manière générale : dès l'instant où je fais des mises à jour basées sur des regroupements, j'ai intérêt à créer une table temporaire, surtout si par la suite je dois faire des modifications?

    Par contre pour le moment, ma base en construction contient tout : tables , requêtes etc. Comment je fais pour dire à la table qu'elle devra être créé en frontal?

  18. #18
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Comment je fais pour dire à la table qu'elle devra être créé en frontal?
    Tu ne fais rien

    En architecture Frontale/Dorsale tu travailles toujours dans la frontale.
    Donc une requête de création de table (SELECT ... INTO TableAcréer FROM ...) créera TableAcréer dans la frontale.

    A+

  19. #19
    Membre habitué
    Inscrit en
    Juillet 2008
    Messages
    268
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 268
    Points : 130
    Points
    130
    Par défaut
    C'est impeccable ça!

    Donc en architecture dorsale/frontale, je crée mes tables avant la scission de la base en 2 (Tables/reste) et j'ai mes tables en "dur" pour tout le monde. Et pour chaque table à créer en frontal, je n'ai donc qu'à créer ces tables temporaires à l'aide d'une requête? (à la fin de la création de l'application, faut donc juste penser à virer les temporaires pour scinder la base)
    Donc finalement, je n'ai rien de spécial à faire avant la scission de la base.
    Si c'est ça, c'est excellent!


    Merci!

  20. #20
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Oui, il faut juste ne pas les migrer dans la dorsale.

    A+

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

Discussions similaires

  1. [AC-2003] Requête Mise à jour avec Somme
    Par lio33 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 16/09/2016, 16h54
  2. [AC-97] mise à jour avec conditions
    Par burolec dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/03/2011, 18h06
  3. [AC-2007] requête mise à jour avec deux paramètres
    Par gerarddurand dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/01/2010, 12h07
  4. Requête mise à jour avec jointure interne
    Par joquetino dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/01/2008, 18h41
  5. [Requête/SQL]Mise à jour avec condition
    Par atlantideD dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 23/04/2007, 00h14

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