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 :

Présence des Scrollbars Access [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut Présence des Scrollbars Access
    Bonjour,

    Je cherche un moyen pour tester la présence ou non des scrollbars de la fenêtre Access.

    Merci de votre aide.
    [Access] Les bases du débogage => ici

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 045
    Par défaut
    Dans la contribution http://www.developpez.net/forums/d35...registrements/ tu trouveras le code qui applique des scrollbars quand la hauteur du form dépasse la hauteur de la fenetre.
    Bonne pêche

  3. #3
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,

    As-tu un besoin particulier nécessitant le test des scrollbars ?

    Sinon, il serait (peut-être) mieux de les afficher ou non en fonction d'une condition
    Généralement, l'utilisation d'un scrollbar répond à un besoin....

  4. #4
    Expert confirmé
    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
    Par défaut
    Bonsoir,

    Si tu parles des barre de défilement de la fenêtre de l'application Access,
    voila ce que j'ai trouvé, qui fonctionne avec 2003 mais pas avec 2007 et + :
    [correction]Fonctionne dans 2007. Merci micniv pour avoir testé.[/correction]

    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
    35
    36
    37
    38
    39
    40
    41
    42
    Option Compare Database
    Option Explicit
     
    ' == début déclarations ===================================
     
    ' Trouver Handler d'une fenêtre fille par sa classe
    Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" ( _
           ByVal hwndParent As Long, ByVal hwndChildAfter As Long, _
           ByVal lpszClass As String, ByVal lpszWindow As String) As Long
     
    ' --- Style Fenêtre ---------------------------------------
    Private Const WS_HSCROLL As Long = &H100000
    Private Const WS_VSCROLL As Long = &H200000
     
    ' --- Get/Set WindowLong ----------------------------------
    Private Const GWL_STYLE As Long = -16
     
    ' --- GetWindowLong ---------------------------------------
    Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" _
            (ByVal hWnd As Long, ByVal nIndex As Integer) As Long
     
    ' == fin déclarations =====================================
     
    ' --- La fenêtre client MDI a-t-elle une barre de défilement
    '     verticale ?
    Function MDIhasVtlSB() As Boolean
    Dim lgMDIProp As Long, hWndMDIClientWindow As Long
     
    hWndMDIClientWindow = FindWindowEx(Application.hWndAccessApp, 0, "MDIClient", "")
    lgMDIProp = GetWindowLong(hWndMDIClientWindow, GWL_STYLE)
    MDIhasVtlSB = CBool(lgMDIProp And WS_VSCROLL)
    End Function
     
    ' --- La fenêtre client MDI a-t-elle une barre de défilement
    '     horizontale ?
    Function MDIhasHrzSB() As Boolean
    Dim lgMDIProp As Long, hWndMDIClientWindow As Long
     
    hWndMDIClientWindow = FindWindowEx(Application.hWndAccessApp, 0, "MDIClient", "")
    lgMDIProp = GetWindowLong(hWndMDIClientWindow, GWL_STYLE)
    MDIhasHrzSB = CBool(lgMDIProp And WS_HSCROLL)
    End Function
    A+

  5. #5
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Merci pour vos réponses, mais il ne s'agit pas des scrollbars d'un formulaire ou d'un état mais des scrollbars de la fenêtre Access.

    J'arrive à dimensionner mon formulaire (créé dynamiquement, selon le résultat d'un recordset) presque comme je veux :
    1 - je dimensionne les colonnes en fonction de la largeur des données et de l'entête
    2 - je dimensionne le formulaire selon la largeur et la hauteur totale des données (avec les scrollbars du formulaire si besoin)
    3 - je centre le formulaire sur la fenêtre Access
    4 - enfin, je retaille si ça ne rentre pas dans la fenêtre Access.

    Mais si les scrollbars d'Access sont présents, la zone d'affichage est plus petite que ce qui est calculé. Il faudrait donc que je sache si les scrollbars sont présentes ou non afin d'en tenir compte dans mon calcul de taille de mon formulaire.

    Voilà, voilà.

    Edit : Le bout de code de LedZepp II m'a l'air pas mal. A tester demain ...
    (mais dommage que ça ne fonctionne pas avec Acc07 ...)
    [Access] Les bases du débogage => ici

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 045
    Par défaut
    Apparemment, bonne nouvelle : le code de Ledzep marche sous ACC2007 !
    Pour infos : on a des scrollbars seulement si on affiche les formulaires en mode superposés mais il n'y en en pas en mode Onglet (configurerable dans les options -base active)

  7. #7
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Testé et approuvé.

    C'est nickel.
    [Access] Les bases du débogage => ici

  8. #8
    Expert confirmé
    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
    Par défaut
    Bonsoir,

    Ah ben oui, tiens, ça fonctionne avec 2007.
    J'ai fait une mauvaise supposition.

    Il y a deux type de barres de défilement (cf About Scroll Bars).
    Celles qui font partie du style de la fenêtre et celles qui sont créées en tant que contrôles (=fenêtre enfant).

    Quand j'ai listé les fenêtres enfants (ça peut être de vrais fenêtres ou bien des contrôles) de la fenêtre client MDI,
    j'ai trouvé deux fenêtres enfants de classe NUIScrollbar.
    L'une avait comme titre Horizontal et l'autre Vertical.
    J'étais persuadé que dans Access 2007 c'étaient elles les barre de défilement de l'application.
    Et comme mon code teste les attributs de style, je me suis dit que ce n'était pas applicable à Access 2007.
    Erreur J'aurais du essayer quand même, comme micniv.

    A+

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

Discussions similaires

  1. Colorer des scrollbar d iframe
    Par NeHuS dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/08/2005, 17h32
  2. Comparer des Dates (Access, jdbc)
    Par babylone7 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/07/2005, 10h01
  3. Epaisseur des scrollbar !
    Par Gab-Gab dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/11/2004, 23h02
  4. [VB.NET] Imprimer des états access
    Par bambou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 25/07/2004, 16h52
  5. Réponses: 2
    Dernier message: 11/05/2004, 11h17

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