Bonjour à tous et à toutes,
J'ai un formulaire 0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG concernant les coordonnées des adhérents contenant un sous-formulaire F_Cotisation pour gérer ses cotisations.
Sur activation du formulaire principal tous les contrôles y compris le sous-formulaire sont bloqués pour éviter les maj intempestives.
Dans mon formulaire principal j'ai un bouton "Modifier" qui débloque tous ces contrôles et modifier par exemple le N° de téléphone
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Private Sub Form_Current() On Error Resume Next Dim Ctl As Control For Each Ctl In Me.Détail.Controls If (Ctl.ControlType = acTextBox) Or (Ctl.ControlType = acComboBox) Or (Ctl.ControlType = acCheckBox) Then Ctl.Locked = True End If Next Ctl Me.F_Cotisation.Locked = True Me.QuelAdherent.Locked = False NomDeChemin_AfterUpdate ... end sub
Dans mon sous-formulaire j'ai un bouton "Modifier" pour par exemple saisir la présence à l'AG 2020 et le paiement de sa cotisation.
Tout cela marche parfaitement
Lors de la création d'un nouvel adhérent j'aurais voulu pouvoir directement valider le paiement de sa cotisation sans utiliser le bouton modifier.
J'ai un bouton "enregistrer une nouvelle fiche" avec le code suivant :
Tout fonctionne parfaitement depuis longtemps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Private Sub Nouveau_Click() On Error GoTo Err_Nouveau_Click If Me.NewRecord Then N°Adherent = DMax("[N°Adherent]", "[T Adhérents]") + 1 Me.DateJour.Value = Date DoCmd.RunCommand acCmdSaveRecord MsgBox "S'il s'agit d'un nouvel adhérent, changer d'enregistrement par roulette souris ou le navigateur en bas à gauche" & Chr(13) & "et revenez sur la fiche du nouveau avant d'ouvrir le formulaire de ses cotisations", vbOKOnly 'Ajout du nouvel enregistrement dans la table T_Cotisation Dim T_Cotisation As dao.Recordset Set T_Cotisation = CurrentDb.OpenRecordset("T_Cotisation", dbOpenDynaset) T_Cotisation.AddNew T_Cotisation("T_Adherent_FK") = Me.N°Adherent T_Cotisation.Update Me.F_Cotisation.Locked = False Forms![0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG]![F_Cotisation].[Form]![Cotisation_An].Locked = False Forms![0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG]![F_Cotisation].[Form]![AG].Locked = False Forms![0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG]![F_Cotisation].[Form]![Cotisation].Locked = False Forms![0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG]![F_Cotisation].[Form]![Cotisation_Du].Locked = False End If .... end sub
Pour résoudre mon problème actuel, je viens de rajouter les lignes 21 à 25
Cela ne marche pas car il me faut toujours utiliser le bouton "modifier" du sous formulaire, ce que je voulais éviter.
Je dois rajouter que sur Après mise à jour de la DateAdhesion du formulaire principal j'ai
Ce qui fonctionne parfaitement aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub DateAdhesion_AfterUpdate() [Forms]![0_FORMULAIRE_ADHERENT_AVEC_COTISATIONS_ET_AG]![F_Cotisation].[Form]![Cotisation_An].Value = Year(DateAdhesion) End Sub
Les lignes 21 à 25, à quelle propriété du formulaire principal ou du sous formulaire, peut-on les associer pour éviter de passer par le bouton "modifier" du sous-formulaire ?
Merci de votre aide
A+
C15
Partager