Supprimer dans une table avec vba [Résolu]

Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
Dernière intervention
4 octobre 2006
- 8 août 2006 à 15:22 - Dernière réponse :
Messages postés
17
Date d'inscription
mercredi 15 novembre 2000
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
22
Date d'inscription
vendredi 14 février 2003
Dernière intervention
12 mai 2015
- 4 oct. 2006 à 15:47
3
Merci
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

Merci smr78 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

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

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.