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
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