Supprimer dans une table avec vba [Résolu]

Signaler
Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
4 octobre 2006
-
Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
4 octobre 2006
-
Bonjour,

je dispose de données stockées sous excel, et je souhaiterais utiliser des requetes de type sql pour naviguer dans ces tables, faire des recherches ou ajouter/supprimer des éléments. je ne connais vraiment pas bien vba et encore moins les liens avec bases de données... je n'arrive pas a trouver de tutorial ou de doc sur le sujet, avez vous des liens à me conseiller?

pour l'instant j'arrive à me connecter, a rajouter un element à la table. par contre je n'arrive pas a supprimer un element. j'ai lu dans certains forums que c'etait la maniere d'ouvrir la connection qui etait en cause, mais je n'ai pas trouvé comment y remédier..

Je vous copie mon code. Merci de votre aide!

Clem

____________________________________________________________________________
Dim Connection_BDD_CMR As Connection
Dim enregistrement_CMR As New ADODB.Recordset
Public Nbre_d_enregistrements_CMR As Integer
Public premier_enregistrement, Dernier_enregistrement As String


Public CMR As DataTable

Sub Programme_principal()
    
Set Connection_BDD_CMR = New ADODB.Connection


Connection_BDD_CMR.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               "Data Source=" & "G:\NouveauxFichiers\Marches\CMR.xls;" & _
               "Extended Properties=""Excel 8.0;HDR=YES;"""

    enregistrement_CMR.Open "Select * from [Table_CMR]", _
    Connection_BDD_CMR, adOpenDynamic, adLockOptimistic

'Ajout d'un nouvel enregistrement
enregistrement_CMR.AddNew
   enregistrement_CMR!ENTETE_CMR = "EUROMED"
    enregistrement_CMR!LISTE_PAYS = "EUROMED1"

'Suppression d'un enregistrement
Connection_BDD_CMR.Execute ("delete * from [Table_CMR] where LISTE_PAYS='EUROMED1'")

' Ferme la connection
    Connection_BDD_CMR.Close
        Set enregistrement_CMR Nothing: Set Connection_BDD_CMR Nothing

End Sub

8 réponses

Messages postés
31
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
12 mai 2015

Bonjour,
Effectivement, Excel ne supporte pas la requête DELETE, pour contourner cela, il faut effacer tous les champs de l'enregistrement que l'on souhaite "supprimer".
Voir les explications sur le site support de Microsoft :
http://support.microsoft.com/kb/257819

Cordialement

smr78
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Salut, à vue de nez il manque ce que j'ai mis en rouge :

'Ajout d'un nouvel enregistrement
enregistrement_CMR.AddNew
   enregistrement_CMR!ENTETE_CMR = "EUROMED"
    enregistrement_CMR!LISTE_PAYS = "EUROMED1"
enregistrement_CMR.Update

Sinon, le code parait correct à part que je ne comprend pas pourquoi tu fais une suppression juste après l'ajout ?
Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
4 octobre 2006
1
oui effectivement, j'avais oublié cette commande la.


pour la suppression, pour l'instant ca n'est qu'une ebauche de code, je cherche a voir comment les principales commandes fonctionnent et donc il n'y a effectivement aucun interet a supprimer juste apres!


voila le message d'erreur si j'essaye de supprimer:







Merci
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Désolé, comme ton image se trouve sur ton disque et que je n'y ai pas accès je ne peux pas la voir.
Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
4 octobre 2006
1
lol  g pas trop l'habitude des forums!

donc le message d'erreur est: "La suppression de données dans une table attachée n'est pas gérée par le pilote ISAM."
Messages postés
630
Date d'inscription
vendredi 5 mai 2006
Statut
Membre
Dernière intervention
17 février 2007

Oui, effectivement, j'ai essayé et j'ai le même message d'erreur.


Après recherche sur le net (Microsoft y compris), il semble qu'on ne puisse pas utiliser le DELETE d'SQL sur une table Excel. Vraiment dommage.

Un exemple des opérations réalisables avec des tables Excel à télécharger à cette adresse :


http://download.microsoft.com/download/excel2000/sample/12_27_2000/w98nt42kme/en-us/excelado.exe
Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
4 octobre 2006
1
ok merci je vais regarder ca!
Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
4 octobre 2006
1
Merci à tous, le dernier lien est très utile