|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Salut à tous and happy new year everybody
Toujours dans mon développement d'un outil de gestion de production pour un site d'abattage de volailles, je suis à la recherche d'une méthode qui me permettrait de disposer d'une copie d'une table liée à une autre base de données. Ceci pourrait paraître relativement simple si ce n'est que je voudrais pouvoir disposer des données de cette table en temps réel (toutes les modifications faîtes sur la table source seraient répercutées sur ma copie de cette table en continu) tout en pouvant y appliquer des modifications dans ma deuxième base qui, elles, ne seront pas appliquées sur la table source. En bref, est il envisageable de disposer d'une copie en temps réel d'une table attachée modifiable dont les mises à jour dans ma base de destination n'auraient pas de répercution sur la table source. Un pur casse-tête pour ma part afin de démarrer 2008 en beauté. J'èspère que l'un d'entre vous aurait un début de piste à me soumettre. Tous mes voeux pour cette nouvelle année avec plein de codes aussi rapides qu'efficaces à vous tous.. Banzaï. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Ami du Canard Gras et voisin Bonjour !
En effet pas simple comme problème. En régle générale pas de mise à jour possible en tant réel native. Donc il faut le programmer. La Réplication peut être une solution cependant là non plus pas de temps réel, uniquement du déclenché (heureusement on peut le faire par code). Le problème est que (sauf erreur de ma part, n'étant pas un spécialiste de la réplication) la mise à jour concerne Ajout et Modification. Le moyen restant est un attachement de la table et lancement de requete sur celle-ci au moment des modifications/ajout via l'interface utilisateur. Donc du code entre 2 gavages en perspective ! Longue vie au Canard Gras !
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#3 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Amateur de bonne chair et bon vivant, salutations.
Me voici donc dans une situation quelque peu délicate car cela reviendrait à créer des requêtes de mise à jour d'une base à l'autre dès qu'une modification à lieu sur mes tables source. Bref, cela va me nécessiter un retour sur toutes les requêtes et macros dans lesquelles mes tables sont impliquées. L'utilisation d'une telle méthode ne mettra-t'elle pas en péril les temps de réponse de mon appli? Autant de questions existentielles venant torturer l'esprit de tout développeur... Y'a du pain sur la planche quoi. L'usine à requêtes est en marche. Je vais tenter cette option sur une petite partie de mon appli et voir ce que ca donne en espérant que cela n'aura pas trop d'impact sur les opérateurs en production. Si l'illumination vient à éclairer l'un de vos esprits productifs, n'hésitez pas à me faire signe. Merci à toi Loufab et vive le sud-ouest... |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Sur une application en réseau ça risque de peiner un peu... tout dépend de la qualité de l'infrastructure.
Quel but recherches-tu ?
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#5 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Le but de l'opération est de permettre de palier aux aléas de la production et de disposer d'une marge de manoeuvre vis à vis des commandes clients.
En effet, il est très difficile de faire coincider parfaitement des mises en places d'élevages de volailles qui demandent plusieurs semaines avant d'être matures pour l'abattage et la réactivité requise pour répondre aux commandes qui varient à des échelles de temps extrèmement restreintes. De ce fait, il nous faut pouvoir modifier temporairement l'affectation d'une partie d'un lot de volailles pouvant être déclarées en lieu et place d'un autre lot. Mais tous ceci doit être fait sans pour autant perdre l'information de son origine première tout en conservant les éventuelles réaffectations en vue d'audits internes. On se retrouve par conséquent avec une base exempte de toute modifications et d'une autre modifiable mais conservant malgré tout une cohérence d'un bout à l'autre. Bref, une bonne cuisine interne dans la limite des marges de manoeuve autorisées par les groupements d'éleveurs avec l'accord desquels ces procédures sont possibles. Pour ce qui est de l'infrastructure, elle peine déjà avec de nombreuses applications client-serveur et une administration distante peu réactive et peu encleinte à permettre le développement en interne d'application access maison. |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
A ce que je comprend ça ressemble à une gestion de stock.
Il faudrait gérer les mouvements temporaires de pièces (lots) (une table liée supplémentaire). ça évitera ce système de mise à jour (grosse usine à gaz) qui sur un réseau à bout de souffle posera de sérieux problèmes de temps de réponse. Attention qu'à vouloir économiser du temps d'une refonte vous ne tombiez dans une grosse impasse.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#7 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Bonjour et bienvenue dans un monde où l'on croit que tout est clean.
Pour être vraiment précis, je dirais qu'il s'agit plus de disposer d'une version "officielle" de la base, c'est à dire celle qui est modifiée, et d'une autre officieuse non modifiée qui nous premet de cibler les sources de disfonctionnements internes et par conséquent de pertes en terme de productivité. Ces dernières données ne doivent donc pas être consultables par les personnes extérieures au site. Bref, c'est très délicat comme sujet. |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
En effet le problème n'est pas simple.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#9 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
En fait, je me rends compte que la solution ne sera pas aisée à trouver dans un tel environnement de développement. Malheureusement, je n'ai que celui-ci à ma disposition. Il faut donc que je me résigne à trouver une autre méthode pour arriver à satisfaire aux objectifs qui me sont demandés et, pour ce faire, oublier le doux rêve de pouvoir tout gérer en temps réel, ce qui, pour ma part, ést la condition essentielle à une réactivité optimale et des processus décisionnels facilités. Bref un boulot sans trop de stress pour ceux qui doivent gérer la production au quotidien. Snif!
On touche donc aux limites de ce produit qui pourtant rend déjà de fiers services. Toutefois, pour ma culture personnelle, existe-t-il des environnements capables de réaliser la prouesse tant recherchée par mes responsables et moi-même? Pour conclure, est-ce que le tag [résolu] est de circonstance? Merci à toi, Loufab et à très bientôt pour de nouvelles aventures gersoises |
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Bonjour à tous
Suite au problème rencontré quant à la possibilé de disposer d'une réplique d'un base que l'on peut modifier sans impact sur la base source, la solution que l'on a retenu est de faire une copie de la base une fois la journée de production terminée. On se limitera donc à une seule copie de la base en lieu et place du temps réel tant convoité. Il me reste néanmoins à résoudre un dernier point. En effet, il faut que je puisse, d'un jour sur l'autre, répercuter les modifs faites sur la base source tout en n'écrasant pas les éventuelles corrections faites sur la base de destination. Heureusement, ces modifications ne se limitent qu'à deux tables. Il faut que je ponde une requête qui me permette un ajout des données crées lors de la production du jour tout en répercutant les mouvements de stocks des productions antérieures. A suivre la super requête qui va bien... |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Bonjour,
On en revient au système de requêtes. Pour la copie, tu faire de l'automatique via le plannificateur de tâche de Windows (présent aussi bien sur les postes client que serveur). Sans écrasement de donnée tu vas devoir faire un système d'ajout chronologique (champ date/heure supplémentaire pour identifier l'ordre des modifs). Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#12 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Bonjour Loufab
Effectivement, seule la requête nous sauvera. Dans le cas présent, la duplication de la base ne peut se faire à heure fixe car la fin de la production n'est que trop rarement prévisible. De ce fait, seule une duplication déclenchée par l'utilisateur est envisageable. Pour ce qui est du tri des données, les tables qui m'intéressent possèdent un champ correspondant à la date de production. A partir de là, une requête d'ajout basée sur ce critère me permettra d'ajouter les données de la production du jour. Dans la seconde base de donnée, j'attache toutes les tables de la première base et je crée deux nouvelles tables à partir de celles que je désire modifier. Ensuite, seules sont répercutées sur ces deux nouvelles tables les données générées depuis le début de la journée en cours. Malheureusement, si je veux que ma seconde base donne des résultats équivalents à la première en terme d'éditions et d'utilisation des formulaires, je doit remplacer dans tous les scripts, macros et requêtes le nom des deux tables source par celui des deux tables générées dans la deuxième version de ma base. Bref, je ne peux échapper à un travail de fourmi méticuleux. Sauf si je déniche La baguette magique qui va bien pour faire du rechercher/remplacer dans les moindres recoins sans en oublier. C'est beau de rêver. |
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 098 ![]() |
Il me semble qu'on a un truc comme ça (recherche/remplace) dans les outils. à voir.
En tout cas je l'ai vu quelques part un jour sur le net.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#14 |
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Salut
Il y a bien V-Tools qui semble convenir parfaitement à la situation à l'exception d'un petit détail fort fâcheux ma foi. Il n'existe pour le moment qu'en version compatible avec access 2003 et antérieurs et une tentative d'install sous access 2007 est sans appel. Bref, je nage dedans...
|
|
|
00
|
|
|
#15 | ||
|
Membre du Club
![]() Kamal MOUFAKIR Inscription : novembre 2007 Messages : 70 ![]() |
Salut à tous
Pour palier au problème de mise à jour d'une base par une autre (A vers B)possédant les mêmes tables et pour lesquelles les modifications de A doivent être appliquées à B sans pour autant écraser les modifications faites dans B et uniquement dans B, j'ai dupliqué la base A en la renommant B. Ensuite, j'ai lier les tables de B dans A qui sont renommées avec un indice 1 à la fin du nom de ces tables. Ainsi, j'obtient la table LOT dans A et la table LOT1 dans A qui est le lien vers la table LOT de B. Ensuite, une série de requêtes de non-correspondance permet de définir les jeux de nouveaux enregistrements saisis dans A à copier dans B pour les tables qui ne subissent pas de mises à jour après saisie. Pour les autres tables, qui peuvent évoluer après la première saisie (typiquement entrée/sortie de stock), des requêtes d'update avec des critères bien sélectionnés permettent de ne transmettre que les modifications utiles. On obtient un code VBA à rallonge sur clic d'un bouton accessible par mot de passe (visible true/false) connu de la seule personne abilitée pour cette manipulation. Et roule. Seul point critique : Respecter l'ordre des mises à jour en fonction des relations entre les tables sinon ![]() Code :
__________________
Poussière d'étoile dans l'univers... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com