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

Access Discussion :

Définir la taille des zones de texte


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Points : 35
    Points
    35
    Par défaut Définir la taille des zones de texte
    Bonjour,

    Ce code me permet de tracer des traits à gauche de chaque zone de texte de la section détail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each MonControl In Détail.Controls
            X1 = [MonControl].Left
            Me.Line (X1, 0)-(X1, Détail.Height)
    La partie suivante me permet de tracer un trait plus grand pour toutes les zones de texte de la ligne au cas ou une zone de texte serait plus grand que le détail (mes zones de texte et le détail sont autoextensibles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            If ZoneDeTexte1.Height > Détail.Height Then
                  Me.Line (X1, 0)-(X1, ZoneDeTexte1.Height)
            End If
            If ZoneDeTexte2.Height > ZoneDeTexte1.Height Then
                  Me.Line (X1, 0)-(X1, ZoneDeTexte2.Height)
            End If
            If ZoneDeTexte3.Height > ZoneDeTexte2.Height Then
                  Me.Line (X1, 0)-(X1, ZoneDeTexte3.Height)
            End If
            'etc avec toutes les autres zones de texte
    Next
    Ce que je voudrais, c'est pouvoir mettre ce code dans tous mes états et donc faire une boucle sur toutes mes zones de textes pour trouver la plus grande...
    Quand je prends MonControl.height, il me donne la hauteur du contrôle mais pas sa valeur quand celui-ci est plus grand que prévu (autoextensible)
    J'espère avoir été clair.
    Quelqu'un saurait comment s'y prendre?

    Merci de votre aide.
    L'intelligence, c'est quand on sait qu'on ne sait pas

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    C'est un peu normal, c'est seulement quand tu imprime le texte que Access connais sa hauteur réel.

    J'ai eu un pb similaire, j'ai mis mon code de vérification de taille dans l'événement Format de la zone détail en ouvrant mon état en mode préview (et caché en prod) pour savoir quel taille faisait une de mes zones de texte.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Points : 35
    Points
    35
    Par défaut
    Ce code est placé dans l'évenement "sur impression" de mon état. Il fonctionne très bien et j'arrive bien à avoir la taille de ma zone de texte quand elle est plus grande que prévu (ZoneDeTexte1.Height). Ce que j'arrive pas à faire, c'est faire une boucle sur toutes les zones de texte pour ne pas avoir à faire une série de if et pouvoir placer ce code dans n'importe quel état quelque soit le nom de mes zones de texte.
    L'intelligence, c'est quand on sait qu'on ne sait pas

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Oops j'avais lu ton code un peu vite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim c as control
    dim c1 as control
     
    for each c in me.details.controls
        if c.ControlType = acTextBox then
          for each c1 in me.details.controls
           'faire ton calcul sur le control c en cours
        end if
    next c
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Oops j'avais lu ton code un peu vite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    dim c as control
    dim c1 as control
     
    for each c in me.details.controls
        if c.ControlType = acTextBox then
          for each c1 in me.details.controls
             if c.name <> c1.name then
                'faire ton calcul sur le control en comparant c et c1
             end if
          next c1
        end if
    next c
    Ca va comparer ton controle courrant avec tous les autres controles textes.

    Si tu veux juste le suivant tu peux travailler avec un indice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if me.details.controls(i).height > me.details.controls(i+1) then
    Évidement il faut gérer le cas du dernier controle.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 80
    Points : 35
    Points
    35
    Par défaut
    Merci beaucoup !!!
    J'y suis arrivé.
    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    For Each C In Détail.Controls
        X1 = [C].Left
            Me.Line (X1, 0)-(X1, Détail.Height)
            For Each C1 In Détail.Controls
                    If C1.Height >= C.Height Then
                        Me.Line (X1, 0)-(X1, C1.Height)
                    End If
            Next C1
    Next C
    L'intelligence, c'est quand on sait qu'on ne sait pas

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut remarque :ajustement de la hauteur d'une ligne dans un état
    Je n'ai pas réussi à le faire marché dans mon appli. En fait je crois qu'il n'est pas possible de déterminer la hauteur des

    Citation Envoyé par marot_r
    Oops j'avais lu ton code un peu vite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    dim c as control
    dim c1 as control
     
    for each c in me.details.controls
        if c.ControlType = acTextBox then
          for each c1 in me.details.controls
             if c.name <> c1.name then
                'faire ton calcul sur le control en comparant c et c1
             end if
          next c1
        end if
    next c
    Ca va comparer ton controle courrant avec tous les autres controles textes.

    Si tu veux juste le suivant tu peux travailler avec un indice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if me.details.controls(i).height > me.details.controls(i+1) then
    Évidement il faut gérer le cas du dernier controle.

    A+

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    La hauteur des ?

    Je te conseil d'ouvrir un nouveau sujet pour bénéficier de plus de visibilité.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

Discussions similaires

  1. Définir la taille des ses tablespaces
    Par madina dans le forum Oracle
    Réponses: 6
    Dernier message: 11/05/2006, 17h47
  2. [CSS] Positionner des zones de texte
    Par Ryan Sheckler dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 12/01/2006, 16h46
  3. taille de zone de texte dans une liste
    Par corwin44 dans le forum Access
    Réponses: 3
    Dernier message: 28/10/2005, 10h05
  4. : remplir des zones de texte avec une boucle For
    Par Haro_GSD dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 21h23
  5. Réponses: 3
    Dernier message: 21/06/2005, 11h37

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