Supprimer dans une table avec vba [Résolu]

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

8 réponses

Répondre au sujet
smr78 22 Messages postés vendredi 14 février 2003Date d'inscription 12 mai 2015 Dernière intervention - 4 oct. 2006 à 15:47
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de smr78
Dolphin Boy 630 Messages postés vendredi 5 mai 2006Date d'inscription 17 février 2007 Dernière intervention - 8 août 2006 à 15:55
0
Utile
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
blanchoc 17 Messages postés mercredi 15 novembre 2000Date d'inscription 4 octobre 2006 Dernière intervention - 8 août 2006 à 16:17
0
Utile
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
Dolphin Boy 630 Messages postés vendredi 5 mai 2006Date d'inscription 17 février 2007 Dernière intervention - 8 août 2006 à 16:50
0
Utile
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
blanchoc 17 Messages postés mercredi 15 novembre 2000Date d'inscription 4 octobre 2006 Dernière intervention - 8 août 2006 à 16:54
0
Utile
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
Dolphin Boy 630 Messages postés vendredi 5 mai 2006Date d'inscription 17 février 2007 Dernière intervention - 8 août 2006 à 18:20
0
Utile
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
blanchoc 17 Messages postés mercredi 15 novembre 2000Date d'inscription 4 octobre 2006 Dernière intervention - 9 août 2006 à 09:51
0
Utile
ok merci je vais regarder ca!
Commenter la réponse de blanchoc
blanchoc 17 Messages postés mercredi 15 novembre 2000Date d'inscription 4 octobre 2006 Dernière intervention - 4 oct. 2006 à 15:50
0
Utile
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.