IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Formulaire continu implémenté en VB et champs indépendants [AC-2003]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 34
    Points
    34
    Par défaut Formulaire continu implémenté en VB et champs indépendants
    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

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Tu as raison cela vient bien du faite que ce soit des champs indépendants. Access ne conserve qu'un seul jeu de valeurs, celles de l'enr courant et le répète sur toutes les lignes.

    La solution la plus simple serait que tu crées un formulaire prévu pour afficher 255 champs dépendant (une table/requête en Access ne peut avoir qu'aux maximum 255 champs).

    Puis par code, à l'ouverture, tu associes le formulaire à ta source de données et chacun de tes champs à un champ de cette source de données. Ceux qui ne sont pas associés devront être rendus invisibles pour ne pas perturber les utilisateurs. Il va aussi falloir faire cela pour les entêtes de colonne.

    A+

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    J'ai finalement opté pour la création d'une table temporaire issue des résultats de l'analyse croisée. Cela me permet de modifier les données au sein de cette table.
    J'ai ensuite crée une requête de mise à jour de ma table à partir des modifications apportées sur ma table croisée temporaire.

    Aussi, le nombre de champs de la table croisée variant lors de sa création, mon formulaire en affichant les données est construit de façon dynamique.

    Voilà, c'était juste pour info, au cas où cela puisse servir à quelqu'un!

    Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/11/2014, 15h14
  2. Formulaire continu : alimentation champ indépendant
    Par lerico dans le forum Modélisation
    Réponses: 2
    Dernier message: 12/05/2013, 23h23
  3. [AC-2003] Coloration lignes formulaire continu en fonction d'un champ
    Par Asyoshi dans le forum IHM
    Réponses: 2
    Dernier message: 27/05/2011, 09h40
  4. Réponses: 2
    Dernier message: 23/01/2008, 13h58
  5. Formulaire continu et maj valeur de champs
    Par Raz0r dans le forum IHM
    Réponses: 7
    Dernier message: 15/06/2006, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo