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








Répondre avec citation



Partager