Supprimer dans une table avec vba

Résolu
blanchoc Messages postés 17 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 4 octobre 2006 - 8 août 2006 à 15:22
blanchoc Messages postés 17 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 4 octobre 2006 - 4 oct. 2006 à 15:50
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

smr78 Messages postés 25 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 28 août 2022
4 oct. 2006 à 15:47
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
3
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
8 août 2006 à 15:55
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 ?
0
blanchoc Messages postés 17 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 4 octobre 2006 1
8 août 2006 à 16:17
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
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
8 août 2006 à 16:50
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blanchoc Messages postés 17 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 4 octobre 2006 1
8 août 2006 à 16:54
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."
0
Dolphin Boy Messages postés 630 Date d'inscription vendredi 5 mai 2006 Statut Membre Dernière intervention 17 février 2007
8 août 2006 à 18:20
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
0
blanchoc Messages postés 17 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 4 octobre 2006 1
9 août 2006 à 09:51
ok merci je vais regarder ca!
0
blanchoc Messages postés 17 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 4 octobre 2006 1
4 oct. 2006 à 15:50
Merci à tous, le dernier lien est très utile
0