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

IHM Discussion :

Etat:inverser l'affichage, une ligne de D en colonne [AC-2000]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 56
    Points
    56
    Par défaut Etat:inverser l'affichage, une ligne de D en colonne
    Bonjour,

    Traidtionnellement, dans un état ou un formulaire, les données sont présentées sous cette forme :

    Nom Prénom Age
    Durand Pierre 40
    Dupont Jacques 42

    Je voudrais inverser l'affichage avec:

    Nom Durand Dupont
    Prénom Pierre Jacques
    Age 40 42

    J'ai pas mal cherché sur le forum et les tuto, mais je n'ai pas trouvé de solution, ce qui m'étonne d'ailleurs

    Auriez-vous une piste là-dessus, ou est-ce tout simplement impossible sous Access?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 56
    Points
    56
    Par défaut Up, image exemple
    Up sur ce sujet, si vous avez des réponses, de tout type, VBA ou non, export excel>transposé>puis import du tableau traité xls vers de nouveau access.

    Même si c'est pour me dire que c'est impossible malheureusement d'obtenir ce résultat sur un état ou un formulaire, j'attends des réponses

    Voila en image (coté droit) ce que je souhaite à obtenir,du premier coup ou après retraitement. Sur l'image c'est un formulaire.
    Images attachées Images attachées  

  3. #3
    Membre expérimenté Avatar de Gabout
    Homme Profil pro
    Utilisateur autodidacte
    Inscrit en
    Mai 2006
    Messages
    1 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Utilisateur autodidacte

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 404
    Points : 1 683
    Points
    1 683
    Par défaut
    Bonjour,

    Peut être une réponse ici

    A+

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour je relance le sujet ...
    je cherche a faire la meme chose, mais je ne trouve aucune réponse

    exemple

    au lieu d'avoir

    NOM PRENOM
    toto x1
    tata x2


    je voudrais

    NOM toto tata
    PRENOM x1 x2



    merci d'avance

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 63
    Points : 56
    Points
    56
    Par défaut 2 solutions : génération de formulaire ; export excel>transposé>import sur access
    Bonjour,

    solution 1 : création dynamique du formulaire par VBA

    Mon formulaire est quasiment terminé, j'ai finalement, a l'aide d'une requete temporaire, créer mes lignes d'enregistrements qui m'intéressent a partir d'un table générale. Mon formulaire possédant 4 types de colonnes d'étiquettes et donc 4 types de colonnes modèles de données associées (textbox).

    Dans l'exemple ci-dessus avec les pays, je créé dynamiquement mes colonnes de contrôle (après avoir effacé les précédents de l'ancienne manipulation). Je met ce code suivant si vous avez à dupliquer plusieurs colonne de données.

    Une fonction dupliquer en module (je pense qu'en sub ça marche pareil)
    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
    Function Dupliquer(NomForm As String, FrmForm As Form, ctl As Control, Data As String, TypeA As String, i As Integer, NbSélectionné As Variant)
    For i = 2 To NbSélectionné '(nbavionsselection)
        Set ctl = CreateControl(NomForm, acTextBox, acDetail)
            With ctl
                .Name = "" & TypeA & "" & i & "_" & Data & ""
                .Width = FrmForm.Controls("" & TypeA & "1_" & Data & "").Width
                .Left = FrmForm.Controls("" & TypeA & "" & i - 1 & "_" & Data & "").Left + FrmForm.Controls("" & TypeA & "" & i - 1 & "_" & Data & "").Width
                .Top = FrmForm.Controls("" & TypeA & "1_" & Data & "").Top
                .Height = FrmForm.Controls("" & TypeA & "1_" & Data & "").Height
                .FontBold = FrmForm.Controls("" & TypeA & "1_" & Data & "").FontBold   'gras
                .FontSize = FrmForm.Controls("" & TypeA & "1_" & Data & "").FontSize   'taille
                .ForeColor = FrmForm.Controls("" & TypeA & "1_" & Data & "").ForeColor
                .FontName = FrmForm.Controls("" & TypeA & "1_" & Data & "").FontName   'police
                .TextAlign = FrmForm.Controls("" & TypeA & "1_" & Data & "").TextAlign 'centré
                .SpecialEffect = FrmForm.Controls("" & TypeA & "1_" & Data & "").SpecialEffect  'aspect à 2 dimensions
            '.FontWeight = Forms.RA_Comparaison_Generale.Controls("c1_surface").FontWeight
            '.HorizontalAlignment = Forms.RA_Comparaison_Generale.Controls("c1_surface").HorizontalAlignment
            'centré
            End With
    Next i
    End Function
    c1_surface se décrit tel :
    c : TypeA - l'un des 4 type de donné (ex : avion de chasse)
    1 : i - i : n° d'avion sélectionné (NbAvionsSelection). 1 représente la colonne 1 c'est à dire la colonne modèle, toujours présent dans mon formulaire jamais effacé. Avant la création, il y a la suppression des contrôles dupliqué lors de la génération d'un rapport précédent, donc attention à ne pas supprimer les colonnes modèles, par exemple de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If Not Mid(ctl.Name, 2, 1) = "1" Then
    DeleteControl...
    surface : data - une donnée pour l'avion (ou attribut de l'avion)

    et dans le Form du formulaire de sélection d'avions, vous pouvez appeler comme ceci la fonction. Dans mon exemple, j'ai donc une douzaine de données à dupliquer par x colonne. Et cela se rapporte à un type de donnée (sur mes 4 au total). Mon formulaire résultat n'a en fait pas de code concernant cette procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Call Dupliquer(NomForm, Forms.RA_Comparaison_Generale.Form, ctl, "surface", "c", i, NbAvionsSelection)
    Call Dupliquer(NomForm, Forms.RA_Comparaison_Generale.Form, ctl, "data2", "c", i, NbAvionsSelection)
    Call Dupliquer(NomForm, Forms.RA_Comparaison_Generale.Form, ctl, "data3", "c", i, NbAvionsSelection)
    '......
    Call Dupliquer(NomForm, Forms.RA_Comparaison_Generale.Form, ctl, "data12", "c", i, NbAvionsSelection)
    Je pense qu'on peut gérer l'énumération des data et améliorer la fonction pour n'avoir qu'une ligne dans le form, mais comme les données cherchées ne sont pas tout à fait les même suivant le type d'avion...Je pense qu'on pourrait énuméré les data désirées par type d'avion dans une/pls tables, mais ça charge un peu trop le fichier access et risque de suppression.

    Mes contrôles sont ensuite alimentés de cette façon. Sur la ligne du haut, j'ai 7 contrôles qui vont être alimentés par la sélection d'avions faite en amont (xJ_avion - x ne représente rien), et les autres vont être alimentés de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For J = 1 To NbAvionsSelection
    Forms.RA_Comparaison_Generale.Controls("c" & J & "_surface") = DLookup("Sref", "ACG", "Avion='" & Forms.RA_Comparaison_Generale.Controls("x" & J & "_avion") & "'")
    ....
    next J
    Si tout ça peut aider quelqu'un un jour, ça fera plaisir.

    Je souhaite gérer l'exportation sur excel de ce formulaire en exportant ma table temporaire, en la transposant sur excel et en la remettant en forme. cela double le travail finalement.

    solution 2 : table temp1 > export excel > transposé > import table temp2 access > création d'un formulaire typique (en-tête + détail)

    Mais cette méthode d'exportation, si elle est poursuivi par l'importation des données transposé d'excel sur access, aurait en réalité constitué la 2e solution pour la création du formulaire. Elle reste à développé, j'ai fait un rapide test avec 2 data et 3 avions, et ça marche très bien egalement. Ca reste à developper, je ne l'ai pas vu encore sur le forum. Je sais gérer l'export sur excel, mais pas encore la transposition, et l'importation excel vers une nouvelle table temporaire "transposé" access, puis la création du formulaire. Le formulaire reprendrait une forme typique à savoir en tête de formulaire reprenant la première ligne transposé, et en détail les enregistrements transposés.

    Voilà, si ça peut servir

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

Discussions similaires

  1. [XL-2007] inverser ordre affichage des lignes dans TCD
    Par issoram dans le forum Conception
    Réponses: 2
    Dernier message: 04/07/2012, 16h51
  2. Réponses: 16
    Dernier message: 03/01/2009, 17h37
  3. [ETAT] Limiter l'affichage des lignes détail
    Par bmad1 dans le forum IHM
    Réponses: 4
    Dernier message: 16/05/2007, 11h12
  4. [Etat] Affichage en ligne plutôt qu'en colonne
    Par Ithilien dans le forum IHM
    Réponses: 1
    Dernier message: 04/01/2007, 11h54
  5. Réponses: 5
    Dernier message: 15/11/2006, 01h22

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