ADO Supprimer tous les enregistrements d'une table [Résolu]

Messages postés
9
Date d'inscription
vendredi 2 septembre 2005
Dernière intervention
10 janvier 2007
- - Dernière réponse : Eagle888
Messages postés
9
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
8 août 2006
- 31 juil. 2006 à 10:54
Bonjour,

j'essai d'utiliser le code suivant pour supprimer tous les enregistrements d'une table

Sub cde_Vider_BDD()
    frm_Principale.Adodc1_tbl_Liste_Barres.Refresh    
    With frm_Principale.Adodc1_tbl_Liste_Barres.Recordset
        .Delete adAffectAllChapters
    End With
    frm_Principale.Adodc1_tbl_Liste_Barres.Refresh
End Sub

et ce code génère le message d'erreur suivant :

Erreur d'exécution 3219
L'opération demandée n'est pas autorisée dans ce contexte.

A quoi cela est-il dû et comment contourner ce problème ?
Je vois bien la solution qui consiste à effacer tous les enregistrements un par un mais je pense que cela n'est pas très propre et pas rapide.

Si quelqu'un peut m'éclairer sur ce sujet ...
A bientôt.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
3
Merci
Salut,


Utilises les objets Connection et Recordset

@+, Julien
Pensez: Règlement/STRONG>

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de jrivet
Messages postés
9
Date d'inscription
mercredi 19 avril 2006
Dernière intervention
8 août 2006
3
Merci
Le plus rapide consiste a supprimer ta table et la recree

cnn1.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & App.Path & "\database.mdb ;User Id=Admin; Password="
cnn1.Open

'Test l'existence de la table
Set MonRs = cnn1.OpenSchema(adSchemaTables)
    While Not MonRs.EOF
          If MonRs!TABLE_NAME = "nom de ta table" Then
          test = True
          End If
          MonRs.MoveNext
     Wend
MonRs.Close

'Si la table existe , on la supprime avec une requete SQL
If test = True Then
sql = "DROP TABLE ByEmployee"
cnn1.Execute sql
End If

'On crée une nouvelle table par une requete SQL
sql = "CREATE TABLE Matable (Nom type,Nom type,Nom type )"
cnn1.Execute sql

Ou le nom designe le nom de la colonne et type le type d'argument de la colonne

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Eagle888
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Dernière intervention
6 avril 2012
0
Merci
Salut,
pourquoi tu ne passes pas par une requête SQL:


DELETE * FROM NOMTABLE

@+, Julien
Pensez: Règlement/STRONG>
Commenter la réponse de jrivet
Messages postés
4066
Date d'inscription
mardi 13 mai 2003
Dernière intervention
23 décembre 2008
0
Merci
Salut,

Un petit "TRUNCATE nomDeLaTable" serait plus approprié. Ca vide les enregistrements, et remet, entre autres, les numéros auto à 0 ... Bref, çà réinitialise complètement la table, ce que ne fait pas DELETE.






Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Commenter la réponse de econs
Messages postés
9
Date d'inscription
vendredi 2 septembre 2005
Dernière intervention
10 janvier 2007
0
Merci
Merci pour vos réponses :


je veux bien faire les essais mais comment dois-je procéder pour envoyer une requête SQL via ADO ?


Cela serait pratique pour faire des filtres, entre autres, car la commande "Filter" ne gère qu'un seul critère a priori.


Merci.


Charles
Commenter la réponse de cboin

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.