Copie de record set?

alix46 Messages postés 5 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 12 mai 2008 - 11 mai 2008 à 15:11
alix46 Messages postés 5 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 12 mai 2008 - 12 mai 2008 à 16:19
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
11 mai 2008 à 17:24
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
0
CarSoftAja Messages postés 26 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 21 mai 2008
11 mai 2008 à 17:33
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
0
alix46 Messages postés 5 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 12 mai 2008
12 mai 2008 à 16:19
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>
0
Rejoignez-nous