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 07/02/2012, 00h14   #1
Invité de passage
 
Inscription : juin 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 5
Points : 1
Points : 1
Par défaut Masquer sous formulaire selon valeur controle

Bonsoir a tous,
Je cherche la syntaxe exacte pour masquer un sous-formulaire en fonction de la valeur d'un contrôle du formulaire père. A priori rien de bien compliqué mais en fait je voudrais que le sous formulaire soit masqué si le contrôle contient les caractères "séances", mais il peut contenir d'autres caractères avant et/ou après. Je ne suis pas forcément très clair mais peut être qu'avec mon essai vous comprendrez mieux :
J'ai affecté à la propriété "sur activation" de mon formulaire père la procédure événementielle suivante :

Code :
1
2
3
4
5
6
7
8
Private Sub Form_Current()
If "Me.Code_Formule.Column(2) = "*" & "séances" & "*" Then
Me.CARTE_10_SEANCES_sous_formulaire.Visible = False
Else
Me.CARTE_10_SEANCES_sous_formulaire.Visible = True
End If
 
End Sub
Et bien sûr ça ne marche pas. Si vous pouviez m'éclairer je vous en serais très reconnaissant.
Merci d'avance
blamaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 05h16   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
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 625
Points : 30 952
Points : 30 952
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Lorsque l'on utilise un caractère générique (*), ce n'est pas égal, mais LIKE.

Un tuto à lire sur le sujet : L'opérateur LIKE

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 07/02/2012, 10h34   #3
Invité de passage
 
Inscription : juin 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 5
Points : 1
Points : 1
Bonjour et merci à Philippe pour l'indication. Il semble donc que j'ai trouvé la bonne syntaxe pour ce qui est à droite du LIKE mais j'ai l'impression que c'est la partie à gauche du LIKE qui pêche... En effet mon contrôle Code_formule est une liste déroulante avec 2 colonnes (dont la première est masquée) et la valeur qui m'intéresse pour déterminer si mon sous formulaire doit être masqué ou non, est la valeur qui se situe dans la deuxième colonne de ma liste déroulante. Mon code est donc le suivant, mais ça ne marche pas :

Code :
1
2
3
4
5
6
7
Private Sub Form_Current()
If Me.Code_Formule.Column(2) = "*séances*" Then
Me.CARTE_10_SEANCES_sous_formulaire.Visible = False
Else
Me.CARTE_10_SEANCES_sous_formulaire.Visible = True
End If
End Sub
Auriez-vous une piste ? Merci
blamaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 10h50   #4
Membre éprouvé
 
Homme Robert LINCE
Conseiller psycho-pédagogique
Inscription : octobre 2007
Messages : 281
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 : 281
Points : 483
Points : 483
Bonjour.
Comme le dit Philippe, il faut utiliser Like dans ton code :
Code :
If Me.Code_Formule.Column(2) Like "*séances*" Then
Dans le code que tu as posté, tu as laissé l'opérateur = !
Cordialement
RobiPMS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 10h51   #5
Rédacteur/Modérateur
 
Avatar de Domi2
 
Homme
Inscription : juin 2006
Messages : 6 227
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 52
Localisation : Suisse

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juin 2006
Messages : 6 227
Points : 9 939
Points : 9 939
Envoyer un message via Skype™ à Domi2
Bonjour,

Pour la propriété Column, le paramètre de la première colonne est 0. Si tu veux faire référence à la deuxième colonne, c'est donc 1 et non 2.

Pour t'en assurer :

Code :
MsgBox Me.Code_Formule.Column(1)
Domi2
__________________
Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

Ici, on ne perd pas de temps ! On en passe...


Access : créer des codes-barres 128 en VBA
Access : les commandes intégrées des menus

Ce message (ou un autre) vous a aidé ? Votez pour lui avec
Domi2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 10h59   #6
Invité de passage
 
Inscription : juin 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 5
Points : 1
Points : 1
Merci beaucoup à Robi et Domi ! En effet Robi, j'ai bêtement fait un copier coller de mon ancien code avec le = mais c'est bien LIKE que j'ai utilisé dans mon code. Et 1000 merci à Domi, c'est bien là que se situait le problème, ma référence de colonne n'était pas la bonne, ça marche impec maintenant !
blamaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h34.


 
 
 
 
Partenaires

Hébergement Web