Déplacement d'enregistrement sur Access 2003

Résolu
netband Messages postés 6 Statut Membre -  
netband Messages postés 6 Statut Membre -
Voila,

J'ai une table avec un nombre de clients. J'ai un form qui affiche tout ces clients et à côté de chaque personne il y a un bouton qui offre la possibilité d'éffacer cet enregistrement. Jusque là tout marche.

Mais j'aimerais bien pouvoir enregistrer le client que j'éfface dans un autre table en un seul bouton.

Comme cela, j'ai une table avec mes clients actifs et une table avec une trace de mes clients passifs.

Je voudrais donc connaitre le code a inséré sur le bouton pour réaliser cette magie.

Merci a vous !
A voir également:

3 réponses

BartLogan
 
Bonsoir Netband,

Une piste pour solutionner votre problème :
En VBA, tapez le code suivant dans la procédure concernée (private sub cmdSupprimer_OnClick(), par exemple):

' === Début de code ===
Dim dbs as DAO.database
Dim rs1 as DAO.recordset, rs2 as DAO.recordset

set dbs = Currentdb()
set rs1 = dbs.openrecordset("MesClientsASupprimer", dbOpenTable)
set rs2 = dbs.openrecordset("MesClientsAArchiver", dbOpenTable)

with rs1
.index = "PrimaryKey"
.seek "=", "La clé primaire à chercher" ' Le numéro ou le code client par exemple

if not .nomatch then
with rs2
.addnew
!NomClient = rs1!NomClient
!PrenomClient = rs1!PrenomClient
.update
end with
.delete
.update
else
Msgbox "Client non trouvé"
end if
end with

set rs2 = nothing
set rs1 = nothing
set dbs = nothing

' === Fin de code ===

En espérant vous avoir aidé(e).

Cordialement,
BarLogan
2
netband Messages postés 6 Statut Membre 1
 
Je vois que dans votre exemple vous utiliser deux variables (NomClient et PrénomClient), Dans ma table il y a a peux près 25 champs.

Dois-je tout recopier ou alors je peux mettre une commande qui me permet de copier l'intégralité de la table ?

Merci pour la réponse rapide en tout cas !
1
BartLogan Messages postés 10 Statut Membre
 
Bonjour Netband,

Vous pouvez utiliser une boucle pour copier l'intégralité de la table en éditant le code que j'ai écrit comme suit :

Dim dbs as DAO.database 
Dim rs1 as DAO.recordset, rs2 as DAO.recordset 
Dim iCpt as integer
...
...
.addnew 
For iCpt = 0 to 24
    rs2(iCpt) = rs1(iCpt)
Next iCpt
.update 
...


ATTENTION: les deux tables doivent avoir la même structure.
0
netband Messages postés 6 Statut Membre 1
 
Merci à toi, ton astuce fonctionne à merveille !

Bonne fin de journée !
0