Bonjour,
Quelques résultats:
> la solution via une requête de mise à jour, proposé par delcroixf, fonctionne très bien pour l'ensemble des enregistrements d'une table ou pour des enregistrements liés à un(des) critère(s) fixe(nt) qui est(sont) défini(s) dans la requête. Ce qui ne me convient pas, il faut que le modification se fassent uniquement sur les enregistrements du sous-formulaire liés au formulaire ouvert.
> je n'ai pas trouvé de solution en adaptant à mon sous-formulaire le code proposé par Renardo
http://www.developpez.net/forums/sho...77#post1840377
Code initial que j'ai adapté :
1 2 3 4 5 6 7 8 9 10 11 12
| 01-Private Sub chkBt1_Click()
02-Dim strForm As String, fm As Form
03-Dim EnrDebut As Long, EnrCount As Long, i As Long
04-strForm = "frmCaseCocher_sub"
05-Set fm = Forms(strForm)
06-EnrDebut = fm.SelectTop
07-EnrCount = fm.SelectHeight
08-For i = 1 To EnrCount
09- DoCmd.GoToRecord acDataForm, strForm, acGoTo, EnrDebut + (i - 1)
10- fm.Sel = 0
11-Next
12-End Sub |
Les Bugs:
Ligne 05=> erreur 2450 si le formulaire "frmCaseCocher_sub" est fermé (ce qui est le cas si je n'ouvre que le formulaire "frmCaseCocher_1", le formulaire "père").
En ligne 04, j'ai essayé le code ci-dessous, et c'est moins bien, erreur 2450 avec "frmCaseCocher_sub" ouvert ou fermé !
04-strForm = "Forms![frmCaseCocher_1]![frmCaseCocher_sub]"
Avec la ligne 05 du code initial et le formulaire "frmCaseCocher_sub" ouvert, l'erreur 2465 est générée en ligne 06
Et ci-dessous le code qui me permet de modifier la case à cocher de l'enregistrement actif de mon sous-formulaire "frmCaseCocher_sub" (sous-formulaire non ouvert).
1 2 3 4 5 6 7
| 51-Private Sub chkBt1_Click()
52-If Me.chkBt1 = True Then
53- Forms![frmCaseCocher_1]![frmCaseCocher_sub].Form![Select] = -1
54- Else
55- Forms![frmCaseCocher_1]![frmCaseCocher_sub].Form![Select] = 0
56-End If
57-End Sub |
Que faire ?
Y a t’il une bonne âme sûrement moins novice que moi qui pourrait me mixer ces deux codes (spécialement les références) ?
Merci d’avance pour le coup de pousse.
Partager