Copie de record set?

Signaler
Messages postés
5
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
12 mai 2008
-
Messages postés
5
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
12 mai 2008
-
Bonjour,

Je voudrais savoir comment faire pour copier les donnés d'un
recordset (client) attaché à une table vers un autre recordset
(archive)?

En fait j'ai un onglet client et dés qu'on clik sur un bouton
"archive", les données de ce client doivent être copier vers l'autre
onglet "archive" puis supprimé ce client...

(vba access)

merci
voilà ce que j'ai fait:

Private Sub Archive()

Dim val As VbMsgBoxResult
                   
        val= MsgBox("Etes-vous sûr d'archiver ce client?", vbInformation + vbYesNo)
   
    If (val= vbYes) Then
   
        MsgBox "Seul les renseignements sur le client seront sauvés!", vbInformation + vbOKOnly

     'copie du client

me.txtnom.value = me.txtnomArchive.value
me.txtpre.value = me.txtpreArchive.value

      
    ' supprimer ce client
  
        'RS_client.Delete
        'RS_client.Requery
   
    Else
   
        MsgBox "Archivage annulé", vbOKOnly
       
   
    End If
       
End Sub

3 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
sdalut,

tu dois avoir 2 RS ouverts en simultané pour écrire dans le "archivage" (nouvel enregistrement) à partir du premier avant de le supprimer
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
26
Date d'inscription
lundi 5 mai 2008
Statut
Membre
Dernière intervention
21 mai 2008

Bonjour,

Pourquoi mettre les données dans un autre onglet ? Est-ce nécessaire ?

Il serait possible de se passer de cet onglet en écrivant les données directement dans une table archive.
...
 'copie du client dans la table Archive

Dim rst as DAO.recordset
set rst=currentDB.OpenRecordset("MaTableArchive")

rst.addnew
rst!Nomduchamp1=me.txtnom.value
rst!NomDuChamp2=me.txtpre.value
rst!DateArchive=Now()
rst.Update
rst.close

      
   ' supprimer ce client par la méthode DoMenuItem (sélection de l'enregistrement
   '  courant puis suppression)
DoCmd
.
DoMenuItem
acFormBar, acEditMenu,
8
, , acMenuVer70
DoCmd
.
DoMenuItem
acFormBar, acEditMenu,
6
, , acMenuVer70

       
'RS_client.Delete
        'RS_client.Requery
   
    Else
   
        MsgBox "Archivage annulé", vbOKOnly
       
   
    End If
Messages postés
5
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
12 mai 2008

pour répondre, oui la copie doit se faire dans l'onglet et la table "archive".
voilà ce que j'ai fait.

<ol id="code1" class="olcode"><li>Private Sub archive()</li><li>
</li><li>Dim val As VbMsgBoxResult</li><li>                 </li><li>        val= MsgBox("Archiver ce client?", vbInformation + vbYesNo)</li><li> </li><li>    If (val= vbYes) Then</li><li> </li><li>
</li><li>     'copie du client dans archive (onglet)</li><li></li><li>    me.txtnomArchive.valueme.txtnom.value</li><li>    me.txtpreArchive.value me.txtpre.value</li><li>
</li><li>     'copie du client dans archive (table-recordset)</li><li>    rs_Ar.addnew</li><li>    rs_Ar.Fields("Nom" ).Value rsclient.Fields("Nom" ).Value</li><li>    rs_Ar.Fields("Prenom" ).Value rsclient.Fields("Prenom" ).Value</li><li>   
</li><li>     </li><li>     'supprimer ce client</li><li> </li><li>        rsclient.Delete</li><li>        rsclient.Requery</li><li> </li><li>    Else</li><li> </li><li>        MsgBox "annulé", vbOKOnly</li><li>     </li><li> </li><li>    End If</li><li>     </li><li>End Sub</li></ol>