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 :

Enlever scrollBars sur formulaire


Sujet :

VBA Access

  1. #1
    Membre actif Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Points : 237
    Points
    237
    Par défaut Enlever scrollBars sur formulaire
    Bonjour.

    J'ai un formulaire continus remplit sur le résultat d'une requete.

    J'aimerai pouvoir enlever l'ascenseur vertical quand les lignes ne dépassent pas le bas de mon écrans.

    La commande pour enlever l'ascenseur est :
    Cependant je ne vois pas comment savoir si les ligne dépassent ou non.

    Quelqu'un pourrait-il m'aider ou au moins me dire qu'on n'a aucun moyen de savoir ?

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Il y a un moyen.
    Place cette procédure dans ton formulaire et appelle la après que le formulaire a exécuté la requette
    Code vb : 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
    27
    28
    29
    30
    31
    32
    33
    34
    Sub BarreDefilementVerticale()
    Dim HauteurDetail As Long, HauteurEnTete As Long, HauteurPied As Long
    Dim HauteurDispo As Long, NbreEnrMax As Long
     
    ' hauteur d'un enregistrement
    HauteurDetail = Me.Section(acDetail).Height
    ' hauteur en-tête et pied de formulaire
    HauteurEnTete = 0
    HauteurPied = 0
    On Error Resume Next
    HauteurEnTete = Me.Section(acHeader).Height
    HauteurPied = Me.Section(acFooter).Height
    On Error GoTo 0
    ' Si en-tête ou pied de formulaire masqué alors hauteur=0
    If HauteurEnTete > 0 Then
       If Me.Section(acHeader).Visible = False Then HauteurEnTete = 0
    End If
    If HauteurPied > 0 Then
       If Me.Section(acFooter).Visible = False Then HauteurPied = 0
    End If
    ' Hauteur disponible pour les enregistrements
    HauteurDispo = Me.InsideHeight - HauteurEnTete - HauteurPied
    ' Nombre d'enregistrements max dans hauteur disponible
    ' ajouter 1 si on veut prendre en compte l'enregistrement vierge
    NbreEnrMax = HauteurDispo \ HauteurDetail ' + 1
     
    Me.RecordsetClone.MoveLast
    If Me.RecordsetClone.RecordCount > NbreEnrMax Then
       Me.ScrollBars = Me.ScrollBars Or 2
    Else
       Me.ScrollBars = Me.ScrollBars And &HFD
    End If
     
    End Sub
    A+

  3. #3
    Membre actif Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Points : 237
    Points
    237
    Par défaut
    Super merci

    Je la met en place tout de suite

    Je vais juste la modifier un poil pour qu'elle fonctionne avec tous les formulaires de mon application.

    Encore merci!!!!

  4. #4
    Membre actif Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Points : 237
    Points
    237
    Par défaut
    Juste un petit retour pour signaler une amélioration possible de la fonction :
    - Permet de fonctionner aussi sur un sous formulaire.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    Sub DefinirScroll(P_Form As String, P_SF As String)
    'Défini si le détail du formulaire P_Form ou le détail du sous formulaire P_SF, est actif ou non en fonction du nombre de ligne de la partie détail
     
    '=> o_O?? ... o_O' => Quand on rentre dans cette fonction en mode pas à pas, il arrive que ça ne vérouille pas les scrollbars alors que ça devrait
     
      Dim LNG_Detail    As Long 'Hauteur du détail
      Dim LNG_EnTete    As Long 'Hauteur entête de formulaire
      Dim LNG_Pied      As Long 'Hauteur du pied de formulair
      Dim LNG_Dispo     As Long 'Hauteur disponible
      Dim NbreEnrMax    As Long 'nombre de ligne que peu avoir le détail avant de sortir de l'écran
      Dim FRM_Form      As Form 'récupère l'objet formulaire pour le nom passé en paramêtre
     
        'récupère l'objet formulaire
        Set FRM_Form = Application.Forms(P_Form)
     
        ' on initialise la hauteur en-tête et pied de formulaire
        LNG_EnTete = 0
        LNG_Pied = 0
     
        Select Case P_SF
     
            Case "" '------------------------------------ FORMULAIRE ---------------------------------
                ' hauteur d'un enregistrement
                LNG_Detail = FRM_Form.Section(acDetail).Height
     
                'hauteur en-tête et pied de formulaire
                On Error Resume Next
                LNG_EnTete = FRM_Form.Section(acHeader).Height
                LNG_Pied = FRM_Form.Section(acFooter).Height
                On Error GoTo 0
                ' Si en-tête ou pied de formulaire masqué alors hauteur=0
                If LNG_EnTete > 0 Then
                   If FRM_Form.Section(acHeader).Visible = False Then LNG_EnTete = 0
                End If
                If LNG_Pied > 0 Then
                   If FRM_Form.Section(acFooter).Visible = False Then LNG_Pied = 0
                End If
                ' Hauteur disponible pour les enregistrements
                LNG_Dispo = FRM_Form.InsideHeight - LNG_EnTete - LNG_Pied
     
            Case Else '------------------------------ SOUS FORMULAIRE ---------------------------------
     
                ' hauteur d'un enregistrement
                LNG_Detail = FRM_Form.Controls(P_SF).Form.Section(acDetail).Height
     
                'hauteur en-tête et pied de formulaire
                On Error Resume Next
                LNG_EnTete = FRM_Form.Controls(P_SF).Form.Section(acHeader).Height
                LNG_Pied = FRM_Form.Controls(P_SF).Form.Section(acFooter).Height
                On Error GoTo 0
                ' Si en-tête ou pied de formulaire masqué alors hauteur=0
                If LNG_EnTete > 0 Then
                   If FRM_Form.Controls(P_SF).Form.Section(acHeader).Visible = False Then LNG_EnTete = 0
                End If
                If LNG_Pied > 0 Then
                   If FRM_Form.Controls(P_SF).Form.Section(acFooter).Visible = False Then LNG_Pied = 0
                End If
                ' Hauteur disponible pour les enregistrements
                LNG_Dispo = FRM_Form.Controls(P_SF).Height - LNG_EnTete - LNG_Pied
     
        End Select
     
        ' Nombre d'enregistrements max dans hauteur disponible
        ' ajouter 1 si on veut prendre en compte l'enregistrement vierge
        NbreEnrMax = LNG_Dispo \ LNG_Detail ' + 1
     
        'on récupère le nombre d'enregistrement du RecordSource du formulaire
        'FRM_Form.RecordsetClone.MoveLast
         Select Case P_SF
     
            Case "" '------------------------------------ FORMULAIRE ---------------------------------
                If FRM_Form.RecordsetClone.RecordCount > NbreEnrMax Then
                   FRM_Form.ScrollBars = 3 'on met les deux barres de défilement
                Else
                   FRM_Form.ScrollBars = 0 'on enlève les barres de défilement
                End If
     
            Case Else '------------------------------------ SOUS FORMULAIRE ---------------------------------
                If FRM_Form.Controls(P_SF).Form.RecordsetClone.RecordCount > NbreEnrMax Then
                   FRM_Form.Controls(P_SF).Form.ScrollBars = 3 'on met les deux barres de défilement
                Else
                   FRM_Form.Controls(P_SF).Form.ScrollBars = 0 'on enlève les barres de défilement
                End If
     
        End Select
     
    End Sub
    Pour appeler cette fonction pour un formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefinirScroll Me.Name, ""
    Pour appeler cette fonction pour un sous formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DefinirScroll Me.Name, "NomDeLObjetSousFormulaire"
    Voila c'était juste pour mettre ça au cas où cela aiderai quelqu'un.

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

Discussions similaires

  1. [AC-2007] enlever lecture seul en vba sur formulaire
    Par massi15 dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/05/2010, 16h16
  2. Réponses: 2
    Dernier message: 03/08/2009, 04h49
  3. enlever securite sur lien hypertexte
    Par Tierisa dans le forum Access
    Réponses: 7
    Dernier message: 26/11/2007, 22h28
  4. Réponses: 19
    Dernier message: 26/01/2006, 08h44
  5. ScrollBar sur un TPageControl.TTabSheet
    Par Dionyzos dans le forum Composants VCL
    Réponses: 2
    Dernier message: 08/07/2004, 17h10

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