[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Problèmes liés aux codes du site - Problèmes liés aux codes du site


clos par 3Stone le 26/10/2016 : 02:23  Sujet n° 765  Scroll automatique

le 05/03/2016 : 12:53
par HerveLeVieux

Anonyme

visiteur

Bonjour,

En complément de la routine "Scroll automatique", voici une routine qui calcule automatiquement le nombre d'enregistrements affichés dans la zone "défilante" d'un formulaire continu (la variable lStep de la routine).

Elle n'est utilisable qu'à partir d'Access 2013 (les propriétés utilisées ne sont apparues qu'avec cette version).

Option Compare Database
Option Explicit

Private Function NbEnregDéfilement(ByRef Formulaire As Access.Form) As Integer
    '/////////////////////////////////////////////////////
    ' CRÉATION : 05 mars 2016 Hervé Mary
    '
    'MODIFICATIONS :
    '
    'DESCRIPTION :
    'Cette fonction retourne le nombre d'enregistrements
    'simultanément affichables dans la partie "défilante"
    'd'un formulaire continu.
    'Pour ce faire, elle détermine la hauteur de cette zone
    '(qui correspond à la hauteur du formulaire déduction
    'faite de l'entête et du pied) qu'elle divise par la hauteur
    'de la section "Détail" du formulaire

    'INFORMATIONS RECUES :
    'Formulaire : référence au formulaire continu

    'CONDITIONS ET EXCEPTIONS:
    'Les propriétés InsideHeight et InsideWidth ne sont
    'apparues qu'à partir d'Access 2013
    '///////////////////////////////////////////////////////

    Dim H_Fenêtre As Long
    Dim H_Entête As Long
    Dim H_Détail As Long
    Dim H_Pied As Long
    Dim HauteurDéfil As Long

    If Formulaire Is Nothing Then
        NbEnregDéfilement = 0
    Else
        'Déterminer la hauteur intérieure de la fenêtre qui contient le formulaire
        H_Fenêtre = Formulaire.InsideHeight
        'Déterminer la hauteur des entête et pied de formulaire
        H_Entête = Formulaire.Section(acHeader).Height
        H_Pied = Formulaire.Section(acFooter).Height
        'Déterminer la hauteur de la zone de défilement continue
        HauteurDéfil = H_Fenêtre - H_Entête - H_Pied
        'Déterminer combien d'enregistrements sont affichés
        H_Détail = Formulaire.Section(acDetail).Height
        NbEnregDéfilement = HauteurDéfil / H_Détail
    End If     'Formulaire Is Nothing
End Function   'NbEnregDéfilement

 

 sujet clos  Haut
Réponse n° 1
--------
le 06/03/2016 : 20:33
par 3Stone

3Stone

Administrateur

Bonjour,

Je me suis permis de faire un peu de mise en forme pour que cela soit lisible et profite aux visiteurs.

Pour la petite histoire, le code "Scroll automatique" date... Et à l'origine écrit pour Access 97 l

En fait, j'étais charger de la gestion informatique d'une (très) grosse compétition. Les listes de résultats imprimés étaient affichés sur de grands panneaux prévus à cet effet. C'était lourd, lent, ennuyeux et surtout non performant: les participants récupérait les classements qui les concernaient aussi vite qu'ils étaient affichés n

C'est alors que j'ai décidé de placer (dans le hall omnisports où avait lieu la compétition) un second PC en réseau avec une appli Access qui venait récupérer les résultats au fur et à mesure, les triait par catégories et les affichait par "tableau" sur un grand écran via un projecteur alimenté par ledit PC. Cela explique d'ailleurs la nécessité d'utiliser un formulaire de taille "fixe".

Pour qu'il tourne toute la journée sans aucune intervention, j'ai utilisé ces "scroll automatique" qui, arrivé au bout de la catégorie, récupérait la suivante et ainsi de suite.

De cette manière, je présentait un affichage continu, quasiment en temps réel et surtout sans aucune intervention n

Moi, tranquillement installé dans le local organisateur, je me contentai de l'encodage...

Comme quoi, l'origine d'une petite fonction peut être inattendue...

Cordialement,
Pierre (3Stone)

PS: Je placerais ta fonction dans la page concernée et remercie pour le partage.

  clos par 3Stone le 26/10/2016 : 02:23  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut