Bonjour,
Je suis nouveau sur le forum et débutant en ce qui à trait aux langages de programmation (VBA, VB.NET, etc)
Dans MS Access 2007 (ça doit être la même chose pour Access 2003), j'ai une base de donnée avec 2 tables et 1 formulaire :
- TblGames
- TblArchives (aucune donnée dans la table, structure identique à la table "TblGames")
- FrmGames
Il y a d'autres tables, mais elles ne sont pas importantes dans ma question. Mon formulaire "frmGames" est lié à la table "TblGames". Autrement dit, quand j'entre/modifie les données des champs d'un enregistrement dans le formulaire, la table se mets à jour automatiquement en passant à un autre enregistrement.
Ma question est que je ne sais pas(en fait, je ne sais plus) comment déplacer un enregistrement de la table "TblGames" dans la table "TblArchives" à partir d'un bouton(que j'appellerai "move", par exemple) dans mon formulaire.
Je sais ceci par contre :
- Les deux tables doivent obligatoirement avoir la même structure.
- Quand on déplace un enregistrement, c'est tous les champs de cet enregistrement.
- Je peux le faire en programmant mon bouton avec une requête (Cé beau, mais je ne me rappelle plus comment on fait)
- Ou en code VBA.(Là encore, j'ai un trou de mémoire)
- Mon bouton programmé devra dire "Prends tel enregistrement de la table "TblGames" et copie le dans la table "TblArchives", ensuite efface celui de la table "TblGames".
Supposons que je suis dans mon formulaire à l'enregistrement #1. Je veux déplacer celui-ci dans la table "TblArchives", je clique sur un bouton qui exécute ma requête. L'enregistrement #1 disparaît de la 1ière table pour être dans la 2ième table.
Hé cé beau et ça semble facile, cependant et malgré un cours en Access(2003) que j'ai suivi ça fait 2 ans de ça, j'ai oublié comment on fait. Ouais tu parles d'une mémoire.
En cherchant sur Developpez.com, je suis tombé sur ça :
Il mentionne pour Access 2000, alors j'ignore si pour 2007 ça fonctionnera de cette façon et si oui, je ne comprends plus plus trop ce que tout ça veut dire.Comment insérer des enregistrements de la table1 dans la table2, puis effacer ces enregistrements de la table1
auteur : Maxence HUBICHE
Testé sous Access 2000 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Sub Sauvegarder() 'Création des 2 recordsets Dim myRS1 As New ADODB.Recordset Dim myRS2 As New ADODB.Recordset myRS1.Open "Table1", CurrentProject.Connection, adOpenDynamic, adLockOptimistic myRS2.Open "Table2", CurrentProject.Connection, adOpenDynamic, adLockOptimistic 'Parcours du RS pour ajouter à table1 tout en supprimant de table2 Do Until myRS2.EOF With myRS1 .AddNew Array("Champ1", "Champ2", "Champ3"), _ Array(myRS2("Alpha"), myRS2("Beta"), myRS2("Gamma")) .Update End With myRS2.Delete myRS2.MoveNext Loop 'Fermeture des recordsets myRS1.Close myRS2.Close Set myRS1 = Nothing Set myRS2 = Nothing End Sub
Aussi, dois-je mentionner tous mes champs dans la ligne .AddNew Array et celle du dessous ? Ma table n'a pas seulement 3 champs, mais une 20taine environ.
Un peu aide serait le bienvenue.
Merci
Partager