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 :

Controle s'étendant sur plusieurs enregistrements d'un état [AC-2007]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 93
    Points : 49
    Points
    49
    Par défaut Controle s'étendant sur plusieurs enregistrements d'un état
    Bonjour.

    J'ai créé un état à partir d'une requête comportant deux champs [Nom] et [Prénom].
    J'ai effectué un regroupement par Nom et j'aimerai créé un rectangle qui pour chaque nom s'étend de façon continue le long des prénoms.
    Si je crée ce rectangle en mode création, celui-ci se répète en plusieurs rectangles, un pour chaque enregistrement.
    Y a-t-il un solution ?
    Ou peut-être que les différents prénoms peuvent être lignés horizontalement plutôt que verticalement ?

    Merci par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Je ne comprends pas ce que tu demandes.

    Peux-tu poster un dessin montrant le résultat que tu souhaites ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    Voilà une illustration.

    Merci.
    Images attachées Images attachées

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Quand tu dis : "si c'est possible"

    Exemple dans ta table tu as

    TARTEMPION Jean
    TARTEMPION Louis
    TARTEMPION Bernard

    DUPONT Pierre

    Tu voudrais imprimer :

    TARTEMPION
    Jean Louis Bernard
    DUPONT
    Pierre


    Correct ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    Oui, c'est ça. Imprimer, ou simplement visualiser dans l'état. 'i un peu chercher pour cette solution, mais je n'ai rien trouver de simple.
    L'exemple que j'ai donné n'est pas exactement celui que je traite : j'aurais seulement deux prénoms par nom à mettre côte à côte.

    Mais l'autre partie m'intéresse aussi.

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 596
    Points : 281 920
    Points
    281 920
    Par défaut
    Bonjour,

    Une proposition "aux forceps" (quatre prénoms maximum):

    La table :

    Nom Prenom
    TARTEMPION Jean
    TARTEMPION Pierre
    TARTEMPION André
    TARTEMPION Bernadette
    DURANT Claire
    DURANT Isabelle
    DURANT Catherine
    DUPONT Denise
    DUPONT Albert
    DUPOND Rosine


    Le résultat :




    L'idée :

    Une fonction qui aligne tous les prénoms associés à un même nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Function MiseEnligne(Niveau1 As String) As String
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT Prenom FROM NomsPrenoms WHERE (((Nom)=""" _
                            & Niveau1 & """));")
    Do Until rs.EOF
       MiseEnligne = MiseEnligne & rs("Prenom") & ", "
       rs.MoveNext
    Loop
    'Supprimer dernière virgule
    MiseEnligne = Left(MiseEnligne, Len(MiseEnligne) - 2)
    End Function

    Les deux états ont comme source une requête qui utilise cette fonction MiseEnligne() :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [NomsPrenoms].[Nom], miseenligne([nom]) AS Expr1 FROM NomsPrenoms GROUP BY [NomsPrenoms].[Nom], miseenligne([nom]);

    L'état "Tout sur une ligne" n'appelle pas de commentaire.

    L'état "Avec un rectangle" est un peu plus subtil. Dans la section détail :
    - 1 contrôle "rectangle" ;
    - 4 contrôles indépendants "Prenom(i)" i de 0 à 3. Les trois derniers ont une hauteur = 0 et sont auto-extensibles. Les quatre sont collés les uns en dessous des autres ;
    - dans l'événement "Au formatage" de la section détail, on aménage les champs "Prenom(i)"
    - on ajuste la hauteur du rectangle en fonction du nombre de "Prenom(i)" non-null.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer)
    Dim arrPrenoms() As String, i As Integer
    'Réinitialiser
    For i = 0 To 3
        Me("Prenom" & i) = Null
    Next i
    'Aménager les prénoms dans les cases respectives
    arrPrenoms = Split(Me.zdtExpr1, ",")
    For i = 0 To UBound(arrPrenoms)
        Me("Prenom" & i) = Trim(arrPrenoms(i))
    Next i
    'Ajuster le rectangle
    Me.Rectangle.Height = i * Me.Prenom0.Height
    End Sub
    Ex. Access2000 en annexe.

    A votre disposition si un complément d'info est nécessaire.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 93
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup pour le temps que vous m'avez consacré et votre efficacité.

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

Discussions similaires

  1. Décomposition de champs sur plusieurs enregistrements
    Par djool dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/03/2009, 18h17
  2. Récupérer un valeur max sur plusieurs enregistrements
    Par wadoo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/04/2008, 13h20
  3. Calcul basé sur plusieurs enregistrements
    Par Zinemon dans le forum IHM
    Réponses: 3
    Dernier message: 02/10/2007, 14h41
  4. Réponses: 4
    Dernier message: 16/04/2007, 00h30
  5. Requete sur plusieurs enregistrements !
    Par Mathelec dans le forum Langage SQL
    Réponses: 14
    Dernier message: 12/03/2006, 15h27

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