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 :

Tracage des lignes d'un tableau avec case a cocher [AC-2003]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut Tracage des lignes d'un tableau avec case a cocher
    bonsoir

    j'ai un tableau avec des text box et des case a cocher

    je trace les lignes du tableau grace au code suivant :

    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
      Dim lMaxHauteur As Long
     
       ' ===== on cherche la plus grande hauteur =====
       For Each oCtrl In Me.Section(acDetail).Controls  ' on parcours toutes les zones de texte de la section
          'If oCtrl.Visible = True And TypeOf oCtrl Is TextBox Then              ' on teste si ce sont des textbox
             If oCtrl.Height > lMaxHauteur Then lMaxHauteur = oCtrl.Height
          'End If
       Next oCtrl
     
       ' ===== on enlève le cadre de tous les contrôles =====
       For Each oCtrl In Me.Section(acDetail).Controls  ' on parcours toutes les zones de texte de la section
     
          If TypeOf oCtrl Is TextBox Then                 ' on teste si ce sont des textbox
             oCtrl.BorderStyle = 0                    ' on rend la bordure invisible
             oCtrl.BackStyle = 0                      ' on rend le fond transparent
             Me.DrawWidth = 1
             ' on dessine un cadre autour du contrôle
             Me.Line (oCtrl.Left, oCtrl.Top)-(oCtrl.Left + oCtrl.Width, lMaxHauteur), vbBlack, B
          End If
       Next oCtrl
    End Sub
    Mon souci commence lorsqu'il faut faire les cases autour de mes cases à cocher

    il n'y a pas de ligne autour de ces cases. Elles ont été placées dans des rectangles.

    Je cherche donc à dire à access que le type soit textbox ou RECTANGLE, qu'il trace les lignes autour

    auriez vous la solution ?

    Merci
    Isabelle
    Access version office 365
    windows 7 sous mac

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Le code que tu utilises trace un cadre autout d'un contrôle de type zone de texte, c'est OK.

    Il est vrai qu'une case à cocher est inscrite dans un rectangle plus grand que celle-ci, mais je ne vois pas ce qui gêne, car dans ton code si tu l'appliques à la case à cocher tu devrais avoir le même cadre avec les mêmes dimensions (du moins la hauteur qu'une zone de texte).

    Peux-tu nous éclairer un peu (à moins que c'est moi qui doit avoir besoin de lumière ce mation ), et une copie d'écran à l'appui ce serait pas mal

    Philippe

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 159
    Points
    159
    Par défaut
    Merci pour ta réponse Philippe,

    J'ai modifié le code ainsi et l'ai mis sur impression plutôt que formatage :

    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
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
      Dim oCtrl As Control
       Dim lMaxHauteur As Long
     
       ' ===== on cherche la plus grande hauteur =====
       For Each oCtrl In Me.Section(acDetail).Controls  ' on parcours toutes les zones de texte de la section
          If oCtrl.ControlType <> acCheckBox Or TypeOf oCtrl Is TextBox Then               ' on teste si ce sont des textbox
     
             If oCtrl.Height > lMaxHauteur Then lMaxHauteur = oCtrl.Height
          End If
       Next oCtrl
     
       ' ===== on enlève le cadre de tous les contrôles =====
       For Each oCtrl In Me.Section(acDetail).Controls  ' on parcours toutes les zones de texte de la section
     
        If oCtrl.ControlType <> acCheckBox Or TypeOf oCtrl Is TextBox Then
     
             oCtrl.BorderStyle = 0                    ' on rend la bordure invisible
             oCtrl.BackStyle = 0                      ' on rend le fond transparent
             Me.DrawWidth = 1
             ' on dessine un cadre autour du contrôle
             Me.Line (oCtrl.Left, oCtrl.Top)-(oCtrl.Left + oCtrl.Width, lMaxHauteur), vbBlack, B
          End If
       Next oCtrl
    End Sub
    et cela fonctionne très bien

    Je ne sais pas la différence entre formatage et impression, et ca m'intrigue qu'un code fonctionne ou pas selon le code évènement. A pas facile Access

    En tous les cas, merci de t'y être intéressé
    Isabelle
    Access version office 365
    windows 7 sous mac

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

Discussions similaires

  1. Comment colorer une ligne d'un tableau avec une case à cocher ?
    Par Gdal dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/08/2011, 11h11
  2. Réponses: 13
    Dernier message: 10/09/2009, 12h42
  3. Réponses: 2
    Dernier message: 03/12/2008, 17h46
  4. Réponses: 4
    Dernier message: 31/05/2004, 12h26
  5. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28

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