OVH Cloud OVH Cloud

Archivage

6 réponses
Avatar
Michel
Bonjour
Je me trouve face à un pb que beaucoup de personnes doivent connaitre,
j'ai une table qui au fil du temps est devenue énorme.La solution serait que
j'ajoute sur mon formulaire qui rempli cette table une case à cocher et
lorsqu'elle
est cochée l'écriture en question disparaitrait de cette table et irait dans
une autre
table nommée archive(histoire de ne pas perdre complètement l'enregistrement
et de pouvoir le consulter ultérieurement.).
Qq aurait une idée car moi je sèche vraiment.
Merci d'avance pour vos idées

6 réponses

Avatar
Raymond [mvp]
Bonjour.

Le gros problème dans ce type d'opération est de savoir si cette table est
reliée à d'autres tables tout aussi évolutives et si elles doivent être
elles-mêmes archivées.
un cas parmi les plus simples est par exemple une table de visites clients
qui a accumulé des données pendant des années et qui n'a jamais été vidée
des clients disparus. on peut donc faire un archivage par une requête ajout
et une requête suppression avec la date de visite comme critère. Ensuite on
peut faire pareil pour les clients qui n'ont plus de visites et les
archiver.
Ce qui n'empêche pas qu'il faut tester toutes les tables reliées aux clients
pour savoir si une donnée autre n'est pas encore en cours dans la base.
le gros travail est de déterminer les critères de sélection, les différentes
requêtes ajout et suppression n'étant que de la simple programamtion.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Michel" a écrit dans le message de
news:40a450b0$0$8401$
Bonjour
Je me trouve face à un pb que beaucoup de personnes doivent connaitre,
j'ai une table qui au fil du temps est devenue énorme.La solution serait
que

j'ajoute sur mon formulaire qui rempli cette table une case à cocher et
lorsqu'elle
est cochée l'écriture en question disparaitrait de cette table et irait
dans

une autre
table nommée archive(histoire de ne pas perdre complètement
l'enregistrement

et de pouvoir le consulter ultérieurement.).
Qq aurait une idée car moi je sèche vraiment.
Merci d'avance pour vos idées




Avatar
Michel
Non j'ai du mal expliquer. J'aimerais simplement que lorsque l'on est sur un
enregistrement de la table par le biais du formulaire et que l'on clique sur
un bouton
ou une case à cocher l'enregistrement soit couper de cette table et coller
dans une autre identique à la première, cela permettrait de ne plus afficher
l'enregistrement lors de la consultation du formulaire.
Avatar
Raymond [mvp]
C'est le même principe.
sur ton formulaire est inscrite la clé primaire ( ou tu l'as dans ton
recordset).
sur le clic du bouton tu fais:
- requête ajout de la table1 vers la table2 avec clause where sur la clé
primaire
- requête suppression sur la table1 avec clause where sur la clé primaire
- rafraichissement du formulaire

faire attention à la clé primaire si elle est sur un numauto, car ton
numauto va changer dans la table2 et tu vas perdre les relations avec les
autres tables, à moins que tu ais toujours transférer le numauto dans la
table2. Donc si ta table2 n'existe pas encore fais un essai de transfert
avec le numauto pour vérifier toutes tes données.

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Michel" a écrit dans le message de
news:40a462ab$0$8419$
Non j'ai du mal expliquer. J'aimerais simplement que lorsque l'on est sur
un

enregistrement de la table par le biais du formulaire et que l'on clique
sur

un bouton
ou une case à cocher l'enregistrement soit couper de cette table et coller
dans une autre identique à la première, cela permettrait de ne plus
afficher

l'enregistrement lors de la consultation du formulaire.




Avatar
Michel
C'est encore moi! J'arrive bien à créer ma requête ajout mais la ou ça
coince
c'est pour instruction Where
Ma clef primaire est le champs numéro (qui est un incrément auto)
dans la condition je met "where numéro=""" pour qu'il ajoute
l'enregistrement en cours dans la table 2 access me préviens qu'il va le
faire mais il n'ajoute rien.
Je sens que ma condition where n'est pas juste, n'est il pas!
Avatar
Raymond [mvp]
ta clause doit être ceci:
WHERE table1.Numéro = [Formulaires]![Formulaire1]![Numéro];

Formulaire1 est le nom réel de ton formulaire.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Michel" a écrit dans le message de
news:40a46fa0$0$9763$
C'est encore moi! J'arrive bien à créer ma requête ajout mais la ou ça
coince
c'est pour instruction Where
Ma clef primaire est le champs numéro (qui est un incrément auto)
dans la condition je met "where numéro=""" pour qu'il ajoute
l'enregistrement en cours dans la table 2 access me préviens qu'il va le
faire mais il n'ajoute rien.
Je sens que ma condition where n'est pas juste, n'est il pas!





Avatar
Michel
Merci beaucoup à Raymond [mvp] pour tes conseils
ça fonctionne en ajout alors maintenant je peux aller plus loin
Bonne journée