[Access] Activation liste/Zone texte

Résolu/Fermé
stef99 Messages postés 6 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 30 novembre 2007 - 27 nov. 2007 à 08:55
 jhanas - 8 sept. 2009 à 04:18
Bonjour,

Suite à de longues recherches, j'ai trouvé au sein de ce forum des réponses à mes questions. Mon problème concerne la mise en oeuvre de ces solutions.

Je suis sur Access 2007, j'ai un formulaire relié à une table. Ce formualire est composé de listes déroulantes dépendantes les unes des autres (par l'intermédiaire de requêtes) et de zones textes.

Mon but: Sur l'évenement "Après Maj" d'un groupe d'options (2 options composent ce groupe),je souhaite désactiver une liste déroulante et une zone de texte. Ce groupe d'option peut prendre les valeurs "1" ou "2" selon l'option choisie. à l'ouverture du formulaire, la valeur par défaut du groupe d'option est "2".

J'ai inséré le code suivant sur l'événement "après Maj" du groupe d'option (pour le moment je me suis concentré sur la désactivation de la zone texte):

Private Sub groupeoption_AfterUpdate()
If Me.optiongroupe.Value = 1 Then
Me.DATER.enable = False
Else
Me.DATER.enable = True
End If
End Sub

/optiongroupe: est le nom de mon groupe d'option
/DATER: est le nom de ma zone texte

Ce code n'a absolument aucun effet sur ma zone texte.

Je vous remercie d'avance.

Cordialement,

Stéphane

15 réponses

blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 nov. 2007 à 09:20
Salut,

- as-tu fait un affichage de ta valeur saisie : msgbox Me.optiongroupe.Value pour voir si elle vaut 1
- aucune action, dis-tu ? y-a-t'il un message d'erreur ?
- dans ton code, ce n'est pas 'enable' qui devrait être, mais 'enabled'...

Je viens de faire un test chez moi, ça marche bien :
Private Sub Cadre0_AfterUpdate()
MsgBox Cadre0.Value
If Cadre0.Value = 2 Then
Liste1.Enabled = False
Else
Liste1.Enabled = True
End If
End Sub
--

A+ Blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
zenon Messages postés 726 Date d'inscription jeudi 30 septembre 2004 Statut Membre Dernière intervention 13 février 2010 180
27 nov. 2007 à 09:21
Bonjour,

Tu pourrais essayer:


If Me!optiongroupe = 1 Then
Me!DATER.enable = False
Else
Me!DATER.enable = True
End If
End Sub

Si ça ne marche pas, essaie d'indiquer le "chemin" complet:

If Forms!NomDuFormulaire!NomDuGroupeOptions = 1 Then
Forms!NomDuFormulaire!DATER. Enable = False ...
0
Salut Blux,

Merci pour ta réponse.
Bon alors je viens de me rendre compte en essayant de visualiser la valeur saisie avec la commande msgbox Me.groupeoption.Value qu'il me demande lorsque j'essaye d'executer le code, le nom d'une macro. Etant donné que je n'ai pas crée de macro je n'ai rien à lui proposer.
J'ai écrit ce code en lancant le générateur de code, aurais je du écrire le code en lancant le générateur de Macro? Si oui, je l'ai déjà fait et n'ai pas réussi (dc besoin d'explication).

J'ai la sensation que le code ne s'execute pas, qu'il ne se passe rien.

Je n'ai dc pas de message d'erreur si ce n'est cette fenêtre qui s'ouvre pour me demander de séléctionner une macro lorsque j'execute le code.



Salut Zenon,

J'ai éssayé ta méthode, mais je pense pas que le problème vient du code. Hormis l'erreur du enabled que j'avais faite.
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 nov. 2007 à 10:54
C'est parce que ton objet 'groupeoption' n'existe pas... Il a sûrement un autre nom ! (cadre0 ?) groupeoption est peut-être le nom de l'étiquette rattachée...

Pour avoir le nom, il faut faire un simple clic sur le cadre qui entoure les boutons d'options (en mode création) et en choisissant dans les propriétés l'onglet 'autres' on voit son 'vrai' nom...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stef99 Messages postés 6 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 30 novembre 2007 1
27 nov. 2007 à 11:17
Nan le nom est bien groupeoption. Ce n'est pas le nom de l'étiquette. J'ai vérifié en faisant la procédure que tu m'as indiqué.
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 nov. 2007 à 11:30
je viens de regarder en détail :

Private Sub groupeoption_AfterUpdate()
If Me.optiongroupe.Value = 1 Then

Un coup, ça s'appelle groupeoption, un coup optiongroupe ! Ca ne va pas aller du tout ! Mets-toi d'accord avec toi-même et tu contenteras sûrement ACCESS :-)
0
Je sais, j'avais remarqué aussi en relisant les postes, mais c'est corrigé et retesté. Tjs sans succès.
Dc pour récapituler, j'ai ce code là dans l'évenement Après Maj:

Private Sub groupeoption_AfterUpdate()
MsgBox groupeoption.Value
If groupeoption.Value = 1 Then
DATER.Enabled = False
Else
DATER.Enabled = True
End If
End Sub

/DATER est ma zone de texte qui doit se griser lorsque groupeoption = 1

Bilan: Rien ne se passe ds le formulaire en mode affichage.
Lorsque que j'execute le code ds la Page Microsoft virtual Basic, une fenetre me demandant de sélectionner une macro s'ouvre.

Merci pour ton aide
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 nov. 2007 à 13:15
Si tu mets un msgbox "toto", l'affiche-t-il ?

Dans le cas contraire, cela veut dire que tu n'as pas mis le code sur le bon évènement (ou sur le bon objet)...
0
Quand je met msgbox "toto" même problème. Il me demande toujours de lui spécifier une macro. Dc même problème.
Voici la procédure exacte que j'ai appliquée pour inscrire ce code à mon groupe option:

1. Je click sur le cadre du groupeoption de manière à ce qu'il soit surligné.
2. Je tape F4 pour afficher les propriétés
3. Je séléctionne l'onglet évenement et click sur les "..." dans la partie "Après Mag"
4. Je lance le générateur de code (la fenêtre virtual Basic s'ouvre)
5. Je tape le code puis je l'enregistre (en cliquant sur la petite disquette)
6. Je ferme la fenêtre Visual Basic.
7. Je retourne à mon formuaire en mode Création
8. Je vérifie ce qu'il y a d'écrit dans la partie Evenement, "Après Maj" : [Procédure événementielle]
9. J'enregsitre mon formulaire
10. Je le ferme et le réouvre pour le tester en Mode Affichage
11. Je remarque que rien n'a changé. (Je reçois pas de message d'erreur). Lorsque que je cliique sur l'option de mon groupe d'option correspondant à la valeur 1 et la zone de texte qui est censée se désactiver, ne se désactive pas.
12. Je retourne dc dans la fenêtre Visual Basic (pour essayer dans lancer le code de manière manuelle) et lance l'execution du code avec la petite fleche
13. Et la il me demande de spécifier une macro

Qu'est ce qui n'est pas bon dans ma méthode?

N.B: Juste pour rappeler que je suis sur Access 2007
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 nov. 2007 à 14:45
Quand je met msgbox "toto" même problème

Affiche-t'il 'toto' ?
0
Nan. Il se passe rien du tout. Juste une fenêtre s'ouvre pour me demander de spécifier une macro (comme auparavant)
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
27 nov. 2007 à 15:31
Donc il ne passe pas dans la procédure 'apres maj' puisque l'affichage est non conditionnel.

Donc le code n'est pas au bon endroit, soit dans le mauvais évènement, soit dans le mauvais objet (nom)...

Je penche pour le mauvais objet, mais je ne peux pas vérifier.
0
Ce problème occure pour d'autre code que j'essaye de faire fonctionner sur d'autres objet. CAD pas d'action.
J'ai reverifié si le code était au bonne endroit, sur le bon évenement, et dans le bonne objet.

Dc ma question: Y a t'il une option dans access 2007 qui permet d'activer ou de désactivité la partie évenement des propriétés d'un objet?
Si non, une autre idée?
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
28 nov. 2007 à 08:31
Je n'ai pas ACCESS 2007, mais je doute fort qu'un tel paramétrage existe...

Tu pourrais enregistrer ta base en format access 2002 et me l'envoyer ? si elle ne contient pas de données que tu ne veux pas révéler, bien sûr !
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
28 nov. 2007 à 09:33
Je viens de t'envoyer un mail avec mon adresse...
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
28 nov. 2007 à 10:28
J'ai bien reçu, ça marche parfaitement chez moi !!!

Je viens de regarder sur google. As-tu désinstallé récemment une version d'access ? As-tu eu 2 (ou plus) versions d'access simultanément installées sur ton poste ?

Voudrais-tu désinstaller/réinstaller access ?
0
Bon me revoila.
Je viens de désinstaller et réinstaller le pack office 2007 pro. Rien a changé.
ça marche parfaitement bien chez toi sur Access 2002? (sans rien changer à ce que j'ai fait?)

Bon je pense que la conclusion est que l'Access 2007 pro est bugué. Et que la solution du problème est de migrer sur 2002 ou 2003.
Ou as tu une dernière idée?

N.B: Merci pour avoir supprimé mon mail.
0
Bonjour,

Voici la conclusion de ce problème: Je n'ai pas réussi à executer les codes VBA sous Access 2007 pro, ma solution a été de migrer sous 2003. Et la tout fonctionnnnnnnnnnneeeeeeeeeeeeeeeee !!!!!!!

Encore Merci Blux pour ton aide.

N.B: Je n'ai sais pas ou faut il clicker pour indiquer que le problème est résolue
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
29 nov. 2007 à 10:08
Au-dessus du premier message, il y a 'modifier le statut de la discussion'...
0
Salut !

J'avais le même problème que toi et en fouillant sur internet j'ai trouvé la solution.

Voici le lien : http://office.microsoft.com/fr-fr/access/HA101980471036.aspx

A+
0
jhanas > pacha
8 sept. 2009 à 04:18
Parfait! J'avais le même problème mais maintenant c'est réglé! Merci!
0
daveknight Messages postés 199 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 22 avril 2011 32
15 janv. 2009 à 18:43
En fait le problème réside au niveau du centre de sécurité d'access 2007...
Voici comment donner la possibilité à Access 2007 Pro d'excuter vos macros et codes VBA des formulaire incorporés :
1. Cliquez sur le drapeau d'Office à l'extrêmité gauche en haut de la fenêtre d'access
2. Chosi l'option access
3. chosir Centre de gestion de la confidentialité
4. Cliquez sur Paramètre du centre de gestion de la confidentialité
5. Dans la nouvelle boîte choisir Emplacement Approuvé
6. Par défaut Access considère que votre base de données est enregistrée dans son dossier d'installation... Alors cliquez sur Ajouter un nouvel emplacement
7. Choisir le dossier où est créé votre base (chez moi c'est dans le dossier Mes Document) et cliquez OK. Il faut impérativement que ce dossier contient votre base de données que vous travaillez avec.
8. Cliquez sur OK dans les 2 fenêtre
9. Fermez votre base de données ou Access complètement et rédemarrez votre BD

Tout va désormais parfaitement ! Et Dieu Créa Krosoft !!! et Krosoft nous foutu des sécurité merdique dans les applications !

Contactez moi si possible pour plus amples infos sur ce truc !
0