Comment supprimer toutes les lignes de la table avant de commencer à les insérer?comment supprimer toutes les lignes de DB via OpenRecordset (DAO)
Répondre
Si vous programmez vba, je suppose que vous travaillez avec Adodb ou simplement avec ADO. Par conséquent, pour supprimer un enregistrement de table, vous pouvez utiliser un objet de commande pour le faire.
Dim cnn as Connection
Dim cmd as Command
Set cnn=new Connection()
cnn.ConnectionString="ConnectionString"
cnn.Open()
Set cmd=new Command()
cmd.ActiveConnection=cnn
cmd.CommandText="DELETE FROM MyTable"
cmd.Execute()
cnn.Close()
Mise à jour: Pour utiliser ADO Les objets doivent ajouter une référence à la bibliothèque ADODB
Deux choses. Tout d'abord, DAO vs ADO est presque hors de propos. Ils sont tous deux disponibles pour accéder via Windows 7 et AFAIK il n'y a pas de plans pour les supprimer. L'un ou l'autre devrait être OK pour utiliser dans Access. Deuxièmement, vous pouvez tout faire:
Public Sub Example()
With Access.CurrentDb
.Execute "DELETE Table2.* FROM Table2;"
.Execute "INSERT INTO Table2 (fld1, fld2) SELECT Table1.ID, Table1.MyField FROM Table1;"
End With
End Sub
Vous pourriez juste ceci:
Public Sub Example()
With Access.DoCmd
.RunSQL "DELETE Table2.* FROM Table2;"
.RunSQL "INSERT INTO Table2 (fld1, fld2) SELECT Table1.ID, Table1.MyField FROM Table1;"
End With
End Sub
Mais la méthode Execute jette des messages d'erreur plus d'information (et si vous encore des soins, est OAC).
Je voudrais ajouter un point sur le sujet DAO et ADO. Beatles1692 propose une méthode ADO. Oorang offre une méthode qui n'est ni l'un ni l'autre - c'est une méthode Access VBA. – Smandoli
En fait, cette méthode est DAO;) Si vous vérifiez, currentdb est la propriété si le type DAO.Database. RunSQL est la méthode de l'objet DAO.Database. C'est juste que Access a intégré DAO dans son propre modèle objet plus complètement que ADO. – Oorang
DAO Les jeux d'enregistrements ne disposent pas d'un moyen efficace de vider la table, pour autant que je sache. Si c'est une petite table, vous pouvez probablement supprimer enregistrement par enregistrement, mais je trouverais cela idiot. Je viens d'utiliser DoCmd.RunSQL pour exécuter une requête DELETE. Normalement, je définirais SetWarnings sur False, bien sûr.
Puisqu'il est distinct de DAO, je verrais cette opération à travers avant d'ouvrir le jeu d'enregistrements correctement.
'DoCmd.RunSQL' semble motiver les gens à utiliser' SetWarnings = False' qui est à la fois risqué et inutile. http://stackoverflow.com/questions/11213892/whats-the-difference-between-docmd-setwarnings-and-currentdb-execute/11213943#11213943 Au lieu de 'RunSQL', utilisez la méthode' .Execute' de 'CurrentDb' ou 'CurrentProject.Connection'. L'une ou l'autre exécutera l'instruction 'DELETE' et ne vous incitera pas à désactiver SetWarnings. – HansUp
+1 et un bon conseil de HansUp. J'ai tendance à avoir un état d'esprit procédural et non objectal. Cela fonctionne contre moi. – Smandoli
S'il vous plaît essayez ceci:
Do While Not rs.EOF
rs.Delete
rs.MoveNext
Loop
Cela peut être TRÈS lent. – user3305711
- 1. Comment supprimer toutes les lignes correspondantes dans un seul tampon?
- 2. SQL: supprimer toutes les données de toutes les tables disponibles
- 3. Comment supprimer les lignes vides?
- 4. MS-Access: Sélection des lignes à supprimer via les jointures
- 5. Supprimer toutes les images
- 6. Comment puis-je supprimer toutes les nouvelles lignes des valeurs de hachage?
- 7. Rechercher dans toutes les tables Oracle DB
- 8. supprimer les lignes en double
- 9. Récupère des lignes spécifiques du DB via ADO.Net
- 10. Spring.net Supprimer toutes les connexions adotemplate?
- 11. Supprimer toutes les autorisations de répertoire
- 12. extraction de sous-requête - Toutes les lignes
- 13. La meilleure façon de supprimer toutes les lignes d'une table en utilisant NHibernate?
- 14. Comment puis-je supprimer toutes les lignes sauf une sur quatre dans un fichier texte?
- 15. En utilisant vi, comment puis-je supprimer toutes les lignes contenant [searchterm]?
- 16. Dans vim, comment puis-je supprimer toutes les lignes d'un fichier à l'exception des 100 dernières lignes?
- 17. requête SQL Pour supprimer les lignes
- 18. affichant toutes les lignes dans un calcul?
- 19. SSRS - Comment vérifier toutes les lignes d'une table?
- 20. jquery - le plus rapide pour supprimer toutes les lignes d'une très grande table
- 21. Comment modifier toutes les données de colonne DB en fonction des données actuelles?
- 22. QTP/VBScript: comment supprimer toutes les URL d'une chaîne?
- 23. Supprimer les lignes Gridview en C# 2008
- 24. Comment supprimer un noeud d'arbre binaire avec toutes les possibilités?
- 25. Supprimer les lignes sélectionnées de la liste multi-colonnesVoir
- 26. Comment supprimer les premières lignes "X" d'un fichier texte?
- 27. Comment puis-je supprimer les lignes en double d'un fichier?
- 28. Cryptage DB côté via NHibernate
- 29. Supprimer des lignes du fichier
- 30. Comment supprimer plusieurs lignes dans SQL Server
J'utilise DAO, ADO pas – Tom
je vous recommande d'utiliser ADO au lieu de DAO – Beatles1692
Il ne devrait pas vraiment d'importance que vous utilisez. – Oorang