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

VBA Access Discussion :

Ajustement des ligne d'un sous formulaire


Sujet :

VBA Access

  1. #1
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut Ajustement des ligne d'un sous formulaire
    Bonjour à tous,

    J'ai créé un sous formualaire dans un formulaire qui m'affiche le résultat d'une requete.
    Le truc c'est que dans ce résultat, j'ai un champ de type mémo avec des retour chariot.
    J'aimerai pouvoir ajuster mes hauteurs de ligne ou alors leur donner une valeur par défaut. Cela est-il possible ?

    Merci d'avance.

    Marsup

  2. #2
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 902
    Par défaut
    Bonsoir,
    Une suggestion avec ce code qui ajuste la hauteur du champ mémo par rapport à son nombre de caractères ou du nombre de retour chariot trouvés.
    On divise le nombre de caractères du champ par un nombre supposé de caractères par lignes (70 dans ce code) multiplié par la hauteur d'une ligne (180 twips, soit un peu plus de 3mm).
    A toi d'ajuster les paramètres en fonction de ton besoin:
    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
    26
    Private Sub Form_Current()
    Dim lgnbRC As Long  ' nombre de retours chariot
    ' (Taille du champ mémo / nombre de caractères par lignes) * hauteur de ligne en twips (~ 56.7 twips pour 1 mm)
    If Len(Me.Memo) > 0 Then
        Me.Memo.Height = (Len(Me.Memo) / 70) * 180 '(un peu plus de 3 mm de hauteur de ligne avec Police Tahoma 8)
    End If
     
    ' On compte le nombre de retours chariot
    If Not IsNull(Me.Memo) Then
        lgnbRC = Len(Me.Memo) - Len(Replace(Me.Memo, Chr(13), "")) / Len(Chr(13))
        If lgnbRC <> 0 Then
            Me.Memo.Height = 56.7 * lgnbRC
        End If
    End If
     
    ' Hauteur mini et par défaut
    If Me.Memo.Height < 567 Or IsNull(Len(Me.Memo)) Then
        Me.Memo.Height = 567
    End If
     
    ' Hauteur maxi = Hauteur maxi du SF dans le formulaire parent
    If Me.Memo.Height > 4500 Then Parent.Form.SF1.Height
    ' On adapte la hauteur de la ligne détail selon la taille du champ mémo + la hauteur non occupée par le champ mémo
    Me.Détail.Height = Me.Memo.Height + 567
     
    End Sub
    Le résultat n'est pas très précis mais cela fonctionne. De plus, en mode continu, la hauteur de ligne de l'enregistrement en cours est appliquée à tous les autres.

  3. #3
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Bonjour et merci pour la réponse.

    Je pense que vais adapter le code et je pense que ca va pas mal m'aider.
    J'ai néanmoins une autre question. Dans ce sous formulaire, il s'agit du résultat d'une requête. Quelle modification dois-je faire au code pour regarder uniquement le champ 3 de ma requête. Autrement dit, comment remplacer le Me.Memo par Me.fields("Champ_Memo") par exemple ?

    Merci d'avance.

    Marsup

  4. #4
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Re-Bonjour,

    Mon code ne reconnait pas la propriété .

    Est-ce normal ?

    Merci.
    Marsup

    [Edit]
    En fait si, la proprété Détail est connu mais qu'au niveau du formulaire, pas du sous formulaire

  5. #5
    Membre chevronné Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Par défaut
    Pour cibler ton sous-formulaire tu doit préciser ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!Nom_du_formulaire_Principal!Nom_du_Sousformulaire.forms.détail.height

  6. #6
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Citation Envoyé par robyseb Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!Nom_du_formulaire_Principal!Nom_du_Sousformulaire.forms.détail.height
    J'ai une erreur sur le .forms :
    Membre de méthode ou de données introuvable

  7. #7
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 902
    Par défaut
    Bonsoir,
    As-tu bien placé le code dans le sous-formulaire sur l'évènement "Sur activation" ?

  8. #8
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    Bonsoir,
    As-tu bien placé le code dans le sous-formulaire sur l'évènement "Sur activation" ?
    Bonjour,

    Et bien non car lors de l'ouverture du formulaire principal, une initialisation se fait. Ensuite, l'utilisateur saisi des données et c'est après un événement click que le sous forlulaire doit se mettre à jour. Et j'ai placé le code dans un module.

    Et puis je n'ai pas l'éveement "activation" sur mon formulaire.
    J'ai mis en pièce jointe une copie écran

    Merci d'avance de votre aide.
    Marsup
    Images attachées Images attachées  

  9. #9
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 902
    Par défaut
    Bonjour,
    Tu dois mettre le code dans le sous-formulaire.
    D'après la copie d'écran, ton sous-formulaire est ouvert en création en même temps que ton formulaire principal.
    Soit tu ouvres ton formulaire principal en mode création et, pour accéder aux propriétés du sous-formulaire, tu cliques d'abord sur l'objet sous-formulaire et ensuite sur le carré en haut à gauche de ton sous-formulaire, soit tu ouvres directement ton sous-formulaire pour y acccéder.

  10. #10
    Membre chevronné Avatar de robyseb
    Homme Profil pro
    Programmeur-Analyste
    Inscrit en
    Juillet 2011
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur-Analyste
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 305
    Par défaut
    Erreur de frappe ....

    donc pas de S

    Et tu te retrouve sans l'évènement puisque ton formulairen'est pas présent ... surement parce que tu l'avait déja ouvert en création ou en mode normal avant l'ouverture de ton formulaire principal....

    donc solution ferme tes 2 formulaires puis ré-ouvre ton formulaire principale il va s'afficher correctement et non pas seulement un rectangle vide

Discussions similaires

  1. [AC-2007] Perte des retour à la ligne dans un sous-formulaire
    Par volsan dans le forum IHM
    Réponses: 2
    Dernier message: 13/08/2014, 09h39
  2. Réponses: 1
    Dernier message: 06/07/2010, 15h12
  3. [AC-2007] Total des lignes d'un sous formulaire
    Par pierredraft dans le forum IHM
    Réponses: 2
    Dernier message: 08/06/2009, 11h53
  4. Réponses: 6
    Dernier message: 16/09/2005, 11h56
  5. Sélectionner une ligne d'un sous-formulaire
    Par yoyo30 dans le forum Access
    Réponses: 3
    Dernier message: 16/09/2005, 11h51

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