Bonjour,

Je base un formulaire sur une analyse croisée dynamique. Or, le nombre de lignes et de colonnes de cette analyse croisée est variable...

Donc j'ai essayé d'implémenter ce formulaire en mode continu à partir du langage VB. En parcourant le recordsource, chaque champ de la ligne "détail" est implémenté et s'il n'y a pas d'enregistrement, les champs sont masqués.

Cependant, voilà le soucis:
Toutes mes lignes se retrouvent avec la même valeur, bien que le nombre de lignes et de colonnes soient identiques au recordsource.
Cela est certainement dû au fait que mes champs soient de source "indépendante"...

Y-a-t-il un moyen d'identifier le numéro de ligne de mon formulaire continu lors de l'implémentation des valeurs de mes champs "indépendants" afin d'avoir des valeurs différentes sur chaque ligne?
Ou bien une autre astuce?

Je met le code VB de mon formulaire:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Option Compare Database
Option Explicit
 
' ***** déclaration des variables ***** '
Const Nombre_colonnes = 11 ' Nombre maximum d'étiquettes sur l'état (par rapport à l'exemple) & _
    on peut en afficher plus et donc modifier cette variable
Dim dbBase As DAO.Database
Dim rstEnregistrement As DAO.Recordset
Dim NbColonnes As Integer
_________________________________________________________________
Private Sub Form_Close()
rstEnregistrement.Close
End Sub
_________________________________________________________________
Private Sub Form_Load()
 
 Dim entX As Integer
 
    'Remplis les données "Détail"
    While Not rstEnregistrement.EOF
            For entX = 1 To NbColonnes
                Me("Detail" + Format(entX)) = Nz(rstEnregistrement(entX - 1), 0)
                If entX > 1 Then
                Me("Entete" + Format(entX)) = rstEnregistrement(entX - 1).Name
                End If
            Next entX
 
            ' Cache les zones de texte inutilisées.
            For entX = (NbColonnes + 1) To Nombre_colonnes
                Me("Entete" + Format(entX)).Visible = False
                Me("Detail" + Format(entX)).Visible = False
            Next entX
 
            rstEnregistrement.MoveNext
    Wend
 
End Sub
_________________________________________________________________
Private Sub Form_Open(Cancel As Integer)
 Dim rstRequete As DAO.QueryDef
 
    Set dbBase = CurrentDb
    Set rstRequete = dbBase.QueryDefs("R_Analysecroisee_indexclasseEnjeux_MO")
    Set rstEnregistrement = rstRequete.OpenRecordset()
 
    'Définit le nombre de colonnes de la requête
    NbColonnes = rstRequete.Fields.count
 
    rstEnregistrement.MoveFirst
 
End Sub