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 :

Dimensionnement des formulaires


Sujet :

Access

  1. #1
    Membre habitué
    Dimensionnement des formulaires
    Bonjour,

    Je travaille sur plusieurs applications développées sous Access 2010.
    Depuis quelques mois il arrive fréquemment qu'après avoir modifié un formulaire présentant des données en mode continu (tableau) celui-ci perde sa dimension de largeur lorsqu'il est ouvert en mode exécution.

    J'essaie de m'expliquer:
    Par exemple un formulaire est ouvert en mode création avec une largeur de 15 cm et une hauteur de 10cm, ses propriété d'affichage sont les suivantes:
    • Affichage par défaut = Formulaires continus
    • Auto centrer = Oui
    • Taille ajustée = Non
    • Ajuster à l'écran = Non
    • Style Bordure = Dimensionnable
    • Fenêtre indépendante = Oui (mais ça peut être non: le problème sera le même)

    Lorsque j'ouvre ce formulaire lors de l'exécution sa largeur se trouve réduite à 2 ou 3 cm, la hauteur reste la bonne et le formulaire est centré sur l'écran sur la base de la largeur affichée.
    remarque: la propriété form.width semble correspondre à la dimension de définition mais la propriété form.InsideWidth correspond à la dimension réellement affichée soit 2 ou 3 cm.

    Je précise que le phénomène touche aussi bien de nouveaux formulaires que des formulaires existants depuis longtemps et parfois modifiés uniquement sur quelques lignes de code.

    J'aimerai savoir si l'un d'entre vous a rencontré le même problème et, bien sûr, si on a une solution autre que de forcer la propriété form.InsideWidth comme je le fais actuellement, d'autant plus que le centrage automatique est appliqué sur la valeur initiale de cette propriété et donc son redimensionnement place le formulaire sur la droite de l'écran.

    Merci pour vos réponses.

  2. #2
    Membre expert
    dans l'aide de la ppté "taille ajustée", on trouve
    ...Si vous apportez des modifications à un formulaire affiché en mode Création, dont la propriété AutoResize (TailleAjustée) a pour valeur Non et dont la propriété AutoCenter (AutoCentrer) a pour valeur Oui, basculez en mode Formulaire avant d'enregistrer le formulaire. Si vous ne le faites pas, Microsoft Access tronque le formulaire au niveau des bordures droite et inférieure lors de la prochaine ouverture du formulaire.

    Si la valeur Non est attribuée à la propriété AutoCenter, la fenêtre Formulaire s'ouvre, la position de son coin supérieur gauche est identique à celle qu'elle occupait avant la dernière fermeture de la fenêtre.
    ...
    J'utilise régulièrement
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Me.form.InsideWidth = nnn
    et ça ne pose aucun problème.
    Cordialement
    "Always look at the bright side of life." Monty Python.

  3. #3
    Membre habitué
    Merci Micniv pour la réponse rapide.
    Je viens d'essayer:
    J'ai mis à Non la propriété "Auto Centrer" et laissé la propriété "Taille ajustée" à Non -> même problème

    J'ai essayé d'enregistrer les modification en passant d'abord en mode formulaire mais j'ai rencontrées d'autres difficultés probablement liées au fait que c'est un formulaire modal et que différents traitements sont appliqués à l'ouverture, bref le formulaire est invisible alors que sa propriété Visible indique vrai.

    J'ai aussi procédé à un compactage de la base au cas ou, mais ça n'a rien changé.

    Finalement j'ai annulé les options "Modale" et "Fenêtre indépendante", j'ai mis "Taille ajustée" à Oui et Autocentrer à Non.
    A l'exécution mon formulaire est apparu mais, bien sûr, avec une hauteur insuffisante ("Taille ajustée" = Oui avec un formulaire en continu).

    J'ai ensuite repositionné chaque propriété souhaitée en réexécutant à chaque fois pour vérifier le résultat.
    Au bout du compte je suis revenu à la configuration initiale (qui n'affichait pas correctement le formulaire) et tout fonctionne sans avoir à redéfinit InsideWidth lors de l'affichage du formulaire.

    Mes propriétés sont les suivantes:
    • Affichage par défaut = Formulaires continus
    • Auto centrer = Oui
    • Taille ajustée = Non
    • Ajuster à l'écran = Non
    • Style Bordure = Dimensionnable
    • Fenêtre indépendante = Oui
    • Fenêtre modale = Oui


    Enfin pour répondre à la remarque :

    J'utilise régulièrement
    J'ai indiqué avoir dû recourir à cette propriété en désespoir de cause mais je préfère utiliser les propriétés de positionnement et de dimensionnement automatiques lorsqu'elles sont applicable; D'autant qu'en fonction de l'écran utilisé il est parfois nécessaire de recalculer la valeur adaptée.

    En tout cas merci.

###raw>template_hook.ano_emploi###