Effacer les enregistrements contenus dans une table et y ajouter de nouveaux

Résolu
amirdiakite Messages postés 8 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 23 mai 2012 - 23 mai 2012 à 10:36
amirdiakite Messages postés 8 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 23 mai 2012 - 23 mai 2012 à 19:41
Bonjour à tous. Je remercie encore tous ceux qui m'ont aidé lors de mes questions précédentes. Mon projet avance à grand pas mais je suis confronté à une difficulté. Au fait je veux effacer les enregistrements contenu dans une table ACCESS avant d'y ajouter de nouveaux enregistrements. Je travaille dans un environnement VBA sous excel 2007. Voici mon code actuel que j'ai développé mais sans l'option d'effacer les enregistrements précédents avant d'y ajouter de nouveaux enregistrements.

Sub ADOFromExcelToAccess()
Dim cn As ADODB.Connection, rs As ADODB.Recordset, r As Long
Chemin = ActiveWorkbook.Path
Source = Chemin & "\gestion stock_test.mdb"
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= " & Source & ";"
' open a recordset
Set rs = New ADODB.Recordset
rs.Open "[Etat stock]", cn, adOpenKeyset, adLockOptimistic, adCmdTable ' all records in a table

r = 2 ' the start row in the worksheet
Do While Len(Range("A" & r).Formula) > 0 ' repeat until first empty cell in column A
With rs
.AddNew ' create a new record
' add values to each field in the record
.Fields("Code article") = Range("A" & r).Value
.Fields("Magasin") = Range("B" & r).Value
.Fields("Emplacement") = Range("C" & r).Value
.Fields("Ref GE/Origine") = Range("D" & r).Value
.Fields("Libelle") = Range("E" & r).Value
.Fields("Qté en stock") = Range("F" & r).Value
.Fields("Unité de mesure") = Range("G" & r).Value
.Fields("Coût unitaire moyen") = Range("H" & r).Value
.Fields("Coût total") = Range("I" & r).Value
.Update ' stores the new record
End With
r = r + 1 ' next row
Loop
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub

Merci d'avance et bien à vous,
DIAKITE.

2 réponses

amirdiakite Messages postés 8 Date d'inscription mercredi 19 janvier 2011 Statut Membre Dernière intervention 23 mai 2012
23 mai 2012 à 19:41
Merci NHenry pour ta réaction. J'ai essayé ce code ci-dessous et ça marché:
Requete As String
Requete = "DELETE * FROM Etatstock"
cn.Execute Requete

Amirdiakite.
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
23 mai 2012 à 12:50
Bonjour,

Regardes l'instruction SQL DELETE.

Je déplace dans la partie VBA.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
Rejoignez-nous