Bonjour,
J’ai comme indiqué au schéma :
un formulaire principale (Formulaire A) qu’à comme données source une requête( R_A)
un sous formulaire (Formulaire B) à comme données source une Table(T_B) lié au (Formulaire A)(IDEleve)
un sous sous formulaire (Formulaire C) à comme données source une Table(T_C) lié au (Formulaire B)(IDInscription)
J’ai crée des boutons de déplacements (Macro) (cmdPrevious1 , cmdNext1, cmdFirst1, cmdLast1)dans le (Formulaire A) qui navigue entre enregistrement des (IDEleve) avec les code VB suivants :
Et
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 Private Sub Form_Current() Me.NumEleve.SetFocus If Me.CurrentRecord > 1 Then 'Désactivation du bouton précédent si l'enregistrement est le premier Me!cmdPrevious1.Enabled = True Me!cmdNext1.Enabled = True Else Me!cmdPrevious1.Enabled = False End If Dim lng As Long 'obtient le nombre d'enregistrements lng = Me.RecordsetClone.RecordCount If Me.CurrentRecord = lng Then 'Désactivation de Suivant si l'enregistrement est le dernier Me!cmdNext1.Enabled = False Me!cmdPrevious1.Enabled = True Exit Sub Else Me!cmdNext1.Enabled = True End If End Sub
Ensuite j’ai créé de des boutons de déplacements (Macro) (cmdPrevious2 , cmdNext2, cmdFirst2, cmdLast2) dans le (Formulaire C) pour naviguer entre les enregistrements des (Mois_echeancier) avec le code VB suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Form_Open(Cancel As Integer) With Me.RecordsetClone If .RecordCount > 0 Then .MoveLast End With End Sub
Et
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 Private Sub Form_Current() Me.ID_Echeancier.SetFocus If Me.CurrentRecord > 1 Then 'Désactivation du bouton précédent si l'enregistrement est le premier Me!cmdPrevious2.Enabled = True Me!cmdNext2.Enabled = True Else Me!cmdPrevious2.Enabled = False End If Dim lng As Long 'obtient le nombre d'enregistrements lng = Me.RecordsetClone.RecordCount If Me.CurrentRecord = lng Then 'Désactivation de Suivant si l'enregistrement est le dernier Me!cmdNext2.Enabled = False Me!cmdPrevious2.Enabled = True Exit Sub Else Me!cmdNext2.Enabled = True End If End Sub
Mon problème est que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Form_Open(Cancel As Integer) With Me.RecordsetClone If .RecordCount > 0 Then .MoveLast End With End Sub
Lorsque à l’ouverture de (Formulaire A) :
- Si je commence à naviguer directement dans le (Formulaire C) tout va bien
- Si je commence à naviguer entre les enregistrements (IDEleve) (Formulaire A) ) et je veux passer au (Formulaire C) alors les boutons (cmdPrevious2 , , cmdFirst2, cmdLast2)sont actifs et le bouton ( cmdNext2) inactif et sur clic je reçois un message : impossible d'atteindre l'enregistrement ...) et que les boutons ne fonctionnent d’une façon normale que lorsque je clic sur le bouton (cmdLast2 ) dans le (Formulaire C) .
Cordialement.
Partager