Effacer les enregistrements contenus dans une table et y ajouter de nouveaux [Résolu]

Signaler
Messages postés
8
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
23 mai 2012
-
Messages postés
8
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
23 mai 2012
-
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

Messages postés
8
Date d'inscription
mercredi 19 janvier 2011
Statut
Membre
Dernière intervention
23 mai 2012

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.
Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
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