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 17/02/2011, 20h41   #1
Membre régulier
 
Inscription : janvier 2011
Messages : 309
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 309
Points : 76
Points : 76
Par défaut Bloquer bouton formulaire continu ?

Bonjour à tous,

Je voudrais mettre en enabled= false un bouton contigu à un registre si telle condition est validée dans un formulaire continu mais je n'y arrive pas.

C'est à dire que suivant chaque registre le bouton serait activé ou non ...

Je sais comment coder la condition mais sur quel événement le mettre ?


Merci d'avance
clickandgo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 23h02   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Bonjour,
Citation:
Envoyé par clickandgo Voir le message
Je voudrais mettre en enabled= false un bouton contigu à un registre
Qu'est-ce c'est qu'un bouton contigu à un registre ?
Je comprends en gros ce que tu veux faire mais ne comprends pas ton contexte...

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 00h23   #3
Membre régulier
 
Inscription : janvier 2011
Messages : 309
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 309
Points : 76
Points : 76
" Registre" : On va dire une ligne de la requête affichée par le formulaire continu ..."

Le bouton se trouve à la droite de la ligne, si il y a dix lignes, il y a aussi dix boutons...
clickandgo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 12h14   #4
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Ok, c'est ce que j'avais supposé.
Mais pour ce faire, il faut stocker la valeur dans la table par une case à cocher (champ Oui/Non). L'événement approprié serait un simple AfterUpdate sur la case à cocher.
Toutefois, tu ne pourras pas désactiver la ligne.
Tu ne pourras qu'agir sur l'événement BeforeUpdate de chaque zone recevant des données où le Cancel recevra la valeur de la case à cocher.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
Option Compare Database
Option Explicit
 
Private Sub Champ1_BeforeUpdate(Cancel As Integer)
    Cancel = Me!chkActive
    If Cancel Then
        MsgBox "Pas possible de modifier la valeur !", vbExclamation
        Me.Champ1.Undo
    End If
End Sub
 
Private Sub Champ2_BeforeUpdate(Cancel As Integer)
    Cancel = Me!chkActive
    If Cancel Then
        MsgBox "Pas possible de modifier la valeur !", vbExclamation
        Me.Champ2.Undo
    End If
End Sub
Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 14h27   #5
Membre régulier
 
Inscription : janvier 2011
Messages : 309
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 309
Points : 76
Points : 76
Merci pour ta réponse mais elle n'a rien à voir avec ce que je demandais ...

Il s'agit d'activer ou désactiver l' état d'un bouton par rapport à la valeur d'un champ, les données sont en lecture seule.

Le bouton en question sert à annuler un acompte, il faudrait que le bouton se désactive lorsque la valeur du champ [EtatDocument] =" Annulé ".

Je sais coder pour faire çà dans un formulaire simple mais dans un continu ça ne veut pas marcher !

Je rappelle que le dit bouton est répété sur le formulaire autant de fois qu'il y a de registres visibles...
clickandgo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 16h33   #6
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour ,
Une idée c'est de pouvoir changer le nom du bouton pour l'enregistrement dont le champs est en modification et faire le test sur la valeur du champs et du bouton qui lui est correspondant.
J'ai essayé de faire quelque chose comme
Code :
[bouton].nom=[champs N°ligne].value
mais un message disant que la modification n'est possible qu'en mode création.
A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 18h12   #7
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Citation:
Envoyé par clickandgo Voir le message
Je rappelle que le dit bouton est répété sur le formulaire autant de fois qu'il y a de registres visibles...
Merci pour le rappel
Tu ne peux pas exploiter la propriété Enabled sur un bouton dans un formulaire continu. Soit il seront tous activés, soit ils seront tous désactivés.
Seul un contrôle de type booléen peut s'appliquer si sa valeur est stockée dans la table dans un champ Oui/Non.

Il faut donc t'inspirer que ce que je t'ai proposé pour établir ta condition.
Si ton champ contient "Annulé", alors la case prend la valeur True et dans ton formulaire parent, tu as un autre bouton qui marque comme effacé (mais que ne supprime pas la ligne) chaque enregistrement à True.
Le sous formulaire est rafraîchit avec la requête
Code :
WHERE RegistreAnnulé = False
.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 18h59   #8
Membre régulier
 
Inscription : janvier 2011
Messages : 309
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 309
Points : 76
Points : 76
Merci pour ta réponse,

Je vais devoir trouver une autre solution, peut être revenir à une feuille de données ...

Je te tiens au courant
clickandgo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 08h58   #9
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour ,
Une idée c'est de mettre sur l'événement de "Clic" du bouton un petit code pour afficher un Msgbox pour bloquer l'événement et émettre un alerte juste avant l'événement pour le quel est créer le bouton, Exemple :
Code :
1
2
3
4
5
6
7
8
9
 
If [EtatDocument].Value = "Annulé" Then
If MsgBox("Le compte est Annulé", vbOKOnly, "Attention") = vbOK Then
[EtatDocument].SetFocus
Else
    'Procédure à exécuter par le bouton normalement
End If
End If
End Sub
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 19h37   #10
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 279
Détails du profil
Informations personnelles :
Nom : Homme Robert LINCE
Localisation : Belgique

Informations professionnelles :
Activité : Conseiller psycho-pédagogique
Secteur : Enseignement

Informations forums :
Inscription : octobre 2007
Messages : 279
Points : 478
Points : 478
Bonjour.

Autre idée : faire en sorte que le bouton soit invisible si le champ [EtatDocument] = " Annulé ".

Le code serait donc :

Code :
1
2
3
4
5
6
Private Sub Form_Current()
If Forms![MonFormulaire]![EtatDocument] = "Annulé" Then
Me.MonBouton.Visible = False
Else
Me.MonBouton.Visible = True
End If
Bon travail!
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 08h25   #11
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour ,
Citation:
Envoyé par RobiPMS Voir le message
Autre idée : faire en sorte que le bouton soit invisible si le champ [EtatDocument] = " Annulé ".
Le problème est le même que pour .Enabled : le bouton devient invisible pour tout le formulaire , mais l'idée est très bien si on peux l'appliquer pour l'enregistrement en cours seulement.
A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h21   #12
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
dok flint & RobiPMS, je vois que vous n'avez pas compris la problématique.
Un bouton qui subi une modification des ses propriétés en mode continu affectera tous les boutons de chaque ligne car un bouton ne peut pas être bindé sur un champ de table.
C'est pourquoi j'avais suggéré la case à cocher.
Il appartient à clickandgo de modifier sa conception des choses en amont (niveau conception) pour que ce cas soit traitable par un bouton sur le formulaire Parent et non pas au cas par cas comme il le souhaite.
La case à cocher peut voir sa valeur stockée ce qui fait que l'on peut intervenir pour modifier l'état d'un "Registre" de façon forcée.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h52   #13
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour argyronet ,
Je suis tout a fait d'accord avec toi pour le bouton et la case à cocher qui reste la solution de stockage ,mais je ne vois pas comment cela peut fonctionner avec le bouton que clickandgo veut garder car je crois que ce bouton
déclenche un autre événement et il veut neutraliser le bouton avant que l'utilisateur puisse le déclencher et c'est pour ça que j'ai proposé la solution du Msgbox.
A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h27.


 
 
 
 
Partenaires

Hébergement Web