Bonjour,
voila avec se code je doit supprimer une enregistrement dans ma base access.
mais le probleme c'est qu'il supprime bien la ligne dans la listview mais pas dans ma base.
Private Sub Supprimer_Click()
If (MsgBox("Confirmez la Suppression du Chantier [" & ListC.ListItems(ListC.SelectedItem.Index).ListSubItems.Item(1).Text & "]?", vbYesNo + vbQuestion, "Suppression") = vbYes) Then
'Suppression dans la base
Call Connect
Sql = "Delete from client where Nom_Client='" & ListC.ListItems(ListC.SelectedItem.Index).Text & "'"
Rs.Open Sql, Db, adOpenKeyset, adLockOptimistic
Call Deconnect
ListC.ListItems.Remove (ListC.SelectedItem.Index)
End If
End Sub
La méthode RecordSet.Open est réservée aux requètes SQL qui doivent renvoyer un résultat sous forme de données extraites des tables.
Dans ton cas, la requète est un ordre sans retour. Elle doit donc être exécutée directement sur le moteur :
Db.Execute "Delete ...", r
en supposant que Db soit l'objet de connexion à ta DB.
"r" est une variable qui te renverra le nombre d'enregistrements touchés par l'instruction - ça peut servir à faire des vérifs.
Vala
Jack [MVP VB]
NB : Je ne répondrai pas aux messages privés
Vous n’avez pas trouvé la réponse que vous recherchez ?
La seule chose que tu aies faite, c'est de considéré le contenu de "Nom_Client" comme une valeur numérique au lieu d'une chaine, puisque tu as supprimé les ' encadrant la valeur.
A mon avis, ce n'est pas correct.