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 :

Redimentionner (taille) Sous-Formulaire en Fonction des Enregistrements sous Access


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut Redimentionner (taille) Sous-Formulaire en Fonction des Enregistrements sous Access
    BONSOIR Chers Internautes .

    Y'as t'il moyen de Redimensionner un Sous-Formulaire en Fonction des résultats (enregistrements retournés) de la requette qui lui a été
    Affectée. sous Access 2000??

    Faire en sorte que la taille du sous Formualaire se limite au nombre d'enregistrements (Lignes= rows) retournés.

    Un tuyau , un script , un Astuce ...Sera très bien Acceuillie

    Merci d'avoir jeter un coup d'oeil.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Bonjour,

    Les propriétés Auto extensible et auto reductible ne fonctionne que lors d'une impression. Alors un petit bout de code à placer sur l'événement Sur Activation et bien sur tout autre événement susceptible de faire varier le nombre de record. Dans le sous form on notera notamment ; après insertion et après suppression.

    Donc le bout de code prend les valeurs des différentes zones du sous formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    valeur = Me.NOM_SOUS_FORM.Form.Section(0).Height * (Me.NOM_SOUS_FORM.Form.Recordset.RecordCount + 2)
    valeur = valeur + Me.NOM_SOUS_FORM.Form.Section(1).Height
    valeur = valeur + Me.NOM_SOUS_FORM.Form.Section(2).Height
    DoCmd.Echo False
    Me.NOM_SOUS_FORM.Height = valeur
    DoCmd.Echo True
    On prend la hauteur de la zone détail * par le nombre de record + 2.
    Pourquoi 2 :
    D'abord pour l'enregistrement de saisie, si il n'y en a pas on peut mettre 1.
    ensuite parceque dans l'exemple la barre de déplacement du sous form à la même hauteur qu'un enregistremen. Ce n'est pas valable pour tous les sousform, donc prévoir une mise au point.

    Section(0) c'est toujours la zone Détails
    Section 1 et 2 c'est l'entete et le pied de formulaire. Là aussi il faut adapter.

    Le Docmd.echo false et true permettent de ne pas avori d'effet de bord à l'affichage.

    Ensuite on affecte le total à la hauteur du sous form.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 154
    Points : 84
    Points
    84
    Par défaut
    Bonjour Loufab
    ton Script fonctionne à merveille ...Je l'ai adapté comme suit
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                If Me.formulaire_Apercu.Form.Recordset.RecordCount <= 10 Then
     
     
                valeur = Me.formulaire_Apercu.Form.Section(0).Height * (Me.formulaire_Apercu.Form.Recordset.RecordCount + 2)
                valeur = valeur + Me.formulaire_Apercu.Form.Section(1).Height
     
                DoCmd.Echo False
                Me.formulaire_Apercu.Height = valeur
                DoCmd.Echo True
               End If

    je l'applique lorsque le nombre d'enregistrements est <= 10 ENREGISTREMENT pour ne pas avoir l'erreur de depassement de capacité ...l'affaire est surtout esthétique

    Merci BEAUCOUP

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/07/2010, 14h12
  2. Réponses: 1
    Dernier message: 31/08/2009, 05h17
  3. ordre des enregistrement "sous-formulaire"
    Par pato74 dans le forum IHM
    Réponses: 7
    Dernier message: 26/02/2009, 17h20
  4. Réponses: 2
    Dernier message: 09/01/2009, 09h21
  5. renversement des enregistrements sous formulaire
    Par sebos21 dans le forum Access
    Réponses: 2
    Dernier message: 25/05/2006, 10h48

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