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 :

Affichage de boutons programmés [AC-2010]


Sujet :

IHM

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut Affichage de boutons programmés
    Bonjour le forum,
    J’ai adapté un bout de code trouvé sur le forum pour, dans un sous-formulaire, afficher les boutons “suivant » et “précédent” lorsque le nombre d’enregistrements est > 1.
    En mode déboguage (F8), les boutons s’affichent si nécessaire.
    Par contre, en mode « normal », ces boutons programmés ne s’affichent que si je clique sur un des boutons « flèche » de la barre d’état. Je précise que le contenu de ce sous-formulaire dépend du choix dans une liste déroulante.
    La miniature illustre le sous-formulaire.
    Ci-dessous, le code.
    D’avance merci pour vos réponses.
    Harry
    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
    Sub Form_Current()
    'Housekeeping
      Dim ParentDocName As String
      Me!btn_next.Visible = False
      Me!btn_previous.Visible = False
      currec = Me.CurrentRecord
      ParentDocName = Me.Parent.Name
    'traitement
    ' Bouton suivant
    If tbx_cnt_rec > 1 And currec < tbx_cnt_rec Then
        Me!btn_next.Visible = True
        Else
      Me!btn_next.Visible = False
    End If
    'bouton précédent
    If tbx_cnt_rec > 1 And currec > 1 Then
        Me!btn_previous.Visible = True
        Else: Me!btn_previous.Visible = False
    End If
    End Sub
    Images attachées Images attachées  

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Dans ton code tu as cette variable : tbx_cnt_rec

    D'où vient-elle ? Comment est-elle initialisée ? Quelle est sa valeur au démarrage du formulaire ?

    Ce qui fais que ton test suivant peut ne pas être valable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If tbx_cnt_rec > 1 And currec < tbx_cnt_rec Then
    Philippe

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour,
    Merci pour la réponse.


    1. tbx_cnt_rec est une zone de texte indépendante située dans le pied-de-page du sous-formulaire. Sa valeur est , sa propriété visible = Non; N_producteur est un contrôle du sous-formulaire;Voir la première miniature.
    2. Cette zone de texte sert aussi à alimenter une zone de texte dans le pied-de-page du formulaire principal. voir la seconde miniature (pour l'image, la propriété visible des deux contrôles est mise à Oui)
    3. La valeur "3" affichée dans les zones de texte est correcte.
    4. Normalement, la flèche "suivante devrait apparaître dans le sous-formulaire.


    L'information répond-elle à la question et est-elle suffisante?
    Merci

    Harry
    Images attachées Images attachées   

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ok

    Je viens de relire, tu dis qu'en mode débogage cela fonctionne.

    Donc essayes de mettre l'instruction DoEvents à la première ligne pour voir.

    Philippe

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour,
    merci pour cette réaction rapide.
    DoEvents en début de procédure ne change rien;
    la miniature montre la réaction en mode débogage; le bouton "suivant" apparaît bien.

    Harry
    Images attachées Images attachées  

  6. #6
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour,
    Je ne comprenais pas pourquoi la propriété « visible » appliquée sur des boutons ne s’exécutait pas sur base d’un contrôle calculé. Question de "focus" peut-être? Comme je n’apprécie pas « les caprices » d’Access, j’ai modifié mon approche.
    Au lieu de calculer dans le formulaire, j’ai – dans la procédure événementielle « On current » - défini une variable recevant la valeur de la propriété « recordcount » du recordset. Ci-dessous, le code.

    Peut-être intéressera-t-il d'autres lecteurs du forum?

    Harry

    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
    'Next and previous buttons
    'housekeeping
    Dim rec_set As DAO.Recordset
    Dim rec_cnt As Long
    Set rec_set = Me.RecordsetClone
    Me.NavigationButtons = False
    Me.btn_next.Visible = False
    Me.btn_prev.Visible = False
    rec_cnt = rec_set.RecordCount
    'procédure
    If rec_cnt > 1 Then
    Me.btn_next.Visible = True
    Else
    Me.btn_next.Visible = False
    End If
    If rec_cnt > 1 And Me.CurrentRecord > 1 Then
        Me.btn_prev.Visible = True
        Else: Me.btn_prev.Visible = False
    End If
    If rec_cnt = Me.CurrentRecord Then
    Me.btn_next.Visible = False
    End If
    'fin procédure

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/05/2006, 11h45
  2. Actualiser l'affichage de boutons
    Par pouillou dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 07/05/2006, 18h09
  3. Affichage des boutons d'un TDBNavigator
    Par AlexB59 dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/12/2005, 22h28
  4. [win XP] [DOS] Pblm affichage d'un programme DOS
    Par jesus144 dans le forum Windows XP
    Réponses: 11
    Dernier message: 20/02/2005, 23h32
  5. affichage automatique bouton et zone de liste
    Par mathilde50 dans le forum IHM
    Réponses: 4
    Dernier message: 16/11/2004, 16h02

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