OVH Cloud OVH Cloud

supprimer un enregistrement séléectionné à la souris en code VBA

4 réponses
Avatar
Freegate
Bonjour,

J'ai créé un formulaire "frm" qui contient un sous-formulaire"frm_sf" en
mode feuille de données.
J'ai également créé la fonction suivante dans un module :

Sub supp()
DoCmd.RunCommand acCmdDeleteRecord
End Sub

Al'aide d'un bouton sur "frm" j'appele la fonction supp() pour supprimer les
lignes présélectionnées de "frm_sf.". Malheureusement lorsque j'appuie sur
le bouton il tente de supprimer l'enregistrement en cours de "frm" et non
ceux de "frm_fr".

Vraisemblablement le bouton étant placé sur sur frm il ne peut supprimer les
enregsitrements sur frm_sf.

Ma question : comment améliorer mon code, pour permettre la suppression
des enregistrements sur frm_sf tout en laissant le bouton sur frm ?

Merci

4 réponses

Avatar
Gafish
Freegate wrote:
Bonjour,


Bonjour,

Ma question : comment améliorer mon code, pour permettre la
suppression des enregistrements sur frm_sf tout en laissant le bouton
sur frm ?


Essaie en donnant le focus au sous form avant de lancer ta ligne avec le
acCmdDeleteRecord

Arnaud

Avatar
Freegate
| Essaie en donnant le focus au sous form avant de lancer ta ligne avec le
| acCmdDeleteRecord
|
| Arnaud
|
|

j'ai trouvé la fonction setfocus pour cela.

Pour le faire marcher j'ai essayé les codes suivants mais j'ai une erreur
d'exécution à chaque fois :

Code 1
------------------
myform = "frm!frm_sf"
Forms(myform).SetFocus

Code 2
-----------------------
myform = "forms!frm!frm_sf"
myform.SetFocus

Code 3
-----------------------
myform = "frm_sf"
Forms(myform).SetFocus

Avez-vous une idée pour résoudre le pb ?

Merci
Avatar
Gafish
Freegate wrote:
j'ai trouvé la fonction setfocus pour cela.

Pour le faire marcher j'ai essayé les codes suivants mais j'ai une
erreur d'exécution à chaque fois :

Code 1
------------------
myform = "frm!frm_sf"
Forms(myform).SetFocus

Code 2
-----------------------
myform = "forms!frm!frm_sf"
myform.SetFocus

Code 3
-----------------------
myform = "frm_sf"
Forms(myform).SetFocus


Et avec Forms![NomDuFormPrincipal]![NomDuSousForm].SetFocus ?

Arnaud

Avatar
Freegate
| Et avec Forms![NomDuFormPrincipal]![NomDuSousForm].SetFocus ?
|

euh oui, en le mettant direcetment comme ça dans le code. Mais je voulais
créer une fonction de suppression.

mais j'ai trouvé le code suivant qui marche :
form1=frm
form2=frm_sf

forms(form1)(form2).setfocus

Mon seul souci c'est que le DoCmd.RunCommand acCmdDeleteRecord ne supprime
qu'un seul enregistrement, malgré le fait que plusieurs enregistrements
soient sélectionnés.