Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb Suppression d'éléments VBA

ducrocq

XLDnaute Nouveau
Bonjour,

je souhaite gérer des listes déroulantes par l'intermédiaire d'un formulaire. Sur celui-ci j'ai donc des listes déroulantes avec des boutons d'ajout/suppression/modification pour chacun des listes. Cependant, je n'arrive pas à réaliser ma fonction de suppression. Je m'explique:
j'ai un fichier A qui possède une feuille list_fournisseur avec pour seule colonne le nom des fournisseurs. Et dans un ficheir B, j'ai mon formulaire décrit ci-dessus. Je veux donc à partir de ce formulaire, sélectionner un élément de la liste déroulante et le supprimer de la base A puis actualiser cette liste sans l'élément supprimer.
Voila mon code:

If ComboBox2.Value = "" Then
MsgBox "Veuillez sélectionner un fournisseur à supprimer"
Else
'Insérer le nouveau projet dans la bd
Fichier = "I:\DPR-DPR\00303\_TOUS\TEFournisseurs\Outil TEF\Outil_v18\Base de donnees_v2.xls"
'Nom de la feuille dans le classeur fermé
Nomfeuille = "List_Fournisseurs"

Set Cn = CreateObject("ADODB.Connection")
Set Rst = CreateObject("ADODB.Recordset")

'--- Connection ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source=" & Fichier & _
";Extended Properties=Excel 8.0;"
.Open
End With

texte_SQL = "DELETE [nomFournisseur] from [" & Nomfeuille & "$] WHERE nomFournisseur= '" + ComboBox2.Value + "' "
suppr = MsgBox("Vous allez supprimer '" + ComboBox2.Value + "' de la liste des fournisseurs. Confirmez-vous ce choix?", vbOKCancel)
If suppr = vbOK Then
Set Rst = Cn.Execute(texte_SQL)
MsgBox "L'entrée '" + ComboBox2.Value + "' a été supprimée de la liste des fournisseurs."
End If
If suppr = vbCancel Then Exit Sub

'-- Fermeture connexion ---
Cn.Close
Set Cn = Nothing
Worksheets("PrRequete").Cells.Clear
End If


Apparemment le DELETE ne fonctionne pas à cause du "pilote ISAM" qui ne "gère pas la suppression des données d'une table attachée".
Alors si quelqu'un pourrait m'aider à contourner ce problème, soit en utilisant le DELETE autrement, soit en utilisant une autre méthode je lui en serai infiniment reconnaissant!!

Merci bien
 

Discussions similaires

Réponses
8
Affichages
694
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…