Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2011, 21h52   #1
Membre du Club
 
Inscription : juin 2008
Messages : 126
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 126
Points : 54
Points : 54
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 :
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
Type de fichier : png sf.png (5,7 Ko, 6 affichages)
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 05h53   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 623
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 623
Points : 30 954
Points : 30 954
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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 :
If tbx_cnt_rec > 1 And currec < tbx_cnt_rec Then
Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 18h38   #3
Membre du Club
 
Inscription : juin 2008
Messages : 126
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 126
Points : 54
Points : 54
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
Type de fichier : png sf.png (10,7 Ko, 2 affichages)
Type de fichier : png sf2.png (15,2 Ko, 3 affichages)
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 18h50   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 623
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 623
Points : 30 954
Points : 30 954
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 19h05   #5
Membre du Club
 
Inscription : juin 2008
Messages : 126
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 126
Points : 54
Points : 54
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
Type de fichier : png Capture.PNG (58,4 Ko, 3 affichages)
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 18h06   #6
Membre du Club
 
Inscription : juin 2008
Messages : 126
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 126
Points : 54
Points : 54
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 :
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
Harry Covair est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h08.


 
 
 
 
Partenaires

Hébergement Web