Supprimer un enregistrement dans une table n'ayant pas de clé primaire
cs_carmilloguevara
Messages postés20Date d'inscriptionmercredi 7 mai 2008StatutMembreDernière intervention12 septembre 2013
-
12 mai 2010 à 16:06
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
12 mai 2010 à 16:45
je desire supprimer un enregistrement dans la table effectuer n'ayant pas de clé primaire, mon code est ci dessous, lorsque je click sur mon bouton supprimer, les champs indexés etant dans des textbox sont effacés mais dans ma table effectuer, l'enregistrement selectionné ne s'efface pas. aidez moi en corrigeant mon code si il est faux afin que l'enregistrement selectionné s'efface normalement.
merci
Private Sub cmdsup_Click()
Dim k As String
k = "select code_ci,code_activite,code_nature,engagement from effectuer "
Set ct = New ADODB.Connection
ct.Provider = "microsoft.jet.oledb.4.0"
ct.ConnectionString = App.Path & "\gestion_ded.mdb"
ct.Open
'ouverture de la table
Set bd = New ADODB.Recordset
bd.Open k, ct, adOpenDynamic, adLockPessimistic
k k & " where code_ci '" & Trim(Text15.Text) & "' "
k k & " where code_activite '" & Trim(Text16.Text) & "' "
k k & " where code_nature '" & Trim(Text17.Text) & "' "
k k & " where engagement '" & Trim(Text18.Text) & "' "
'msg1 = MsgBox("Etes-vous sûr de vouloir supprimer la sélection ?", vbQuestion + vbYesNo)
'If msg1 = vbYes Then
'suppression
'bd.Delete
'exécution de la commande
' bd.Requery
'MsgBox ("Enregistrement Supprimé")
End If
bd.Close
A voir également:
Supprimer un enregistrement dans une table n'ayant pas de clé primaire
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 mai 2010 à 16:45
BONJOUR
aussi
Comme à ton habitude, tu présentes un problème sur lequel tu n'as dû beaucoup réfléchir :
- Que vient faire l'histoire de la clé primaire la dedans ?
- Tu complètes la requète Sql APRES l'avoir soumise : Comment veux-tu que cela marche ?
- Si tu veux supprimer un enregistrement et tu fais un SELECT : pas logique.
Il faut faire un "Delete From maTable Where ..."
Dans ce cas (ainsi que pour un INSERT INTO), la requète ne se soumettent pas au travers d'un RecordSet mais directement sur la connexion :
Dim Nb As Long
ct.Execute "Delete From ...", Nb
MsgBox Nb & " enregistrement(s) supprimé(s)"
Toutes ces explications se retrouvent sur les sources présentes sur le site ou mieux, parmi les questions du forum : Suffit de chercher "Supprimer enregistrement" pour trouver des pistes.
Fais des recherches avant de poser une question, stp.
Le forum n'est là que pour dépanner.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)