Ne supprime pas dans la base ACCESS

Résolu
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 - 14 janv. 2014 à 14:52
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 19 janv. 2014 à 04:21
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


auriez vous une idée ?
merci
@ plus

6 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
14 janv. 2014 à 17:30
Salut

Rs.Open Sql, Db, adOpenKeyset, adLockOptimistic
Qu'est ce que Db ? la connection ?

ps adLockOptimistic au moins tu n'es pas pessimiste lol
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
14 janv. 2014 à 19:13
bonsoir

oui Db est la connection
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 janv. 2014 à 19:17
Bonjour,
déclarée où et comment ?
0
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
14 janv. 2014 à 20:15
c'est déclaré dans un module et je l'appelle avec
Call Connect
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 janv. 2014 à 21:12
"déclarée où et comment ?"
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
Modifié par cs_Jack le 15/01/2014 à 00:33
Salut

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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_petchy Messages postés 710 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 19 mai 2015 4
18 janv. 2014 à 11:42
bonjour
c'est bon j'ai trouvé ,

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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 janv. 2014 à 04:21
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.
0
Rejoignez-nous