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 02/04/2011, 11h18   #1
Invité de passage
 
Inscription : août 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 9
Points : 1
Points : 1
Par défaut Formulaire, Sous formulaire continu et listes déroulantes liées

Bonjour à tous,

Tout d'abord, je tiens à remercier l'existence de ce forum dans lequel j'ai déjà trouver un certain nombre de solution sans avoir besoin de poser de question supplémentaire.
Aujourd'hui, j'ai trouvé un certain nombre de réponse sur des problèmes similaires au mien mais sans réussir à l'appliquer au mien...

Ma situation:

- j'ai 4 table reliées par relation 1 à plusieurs (entre Id et Ref) :
Menu (IdMenu, NomMenu)
MenuRec (IdMenuRec, RefIdMenu, RefIdRecette, NbPersonnes, Repas)
Recette (Idrecette, Nom, RefType)
Type (IdType, Type)

- J'ai créer un Sous formulaire continu "SSFormPlatMenu" qui contient une liste déroulante pour le Repas (repas 1, repas 2...); le nombre de personne pour ce repas.
Il contient également une liste déroulante pour le type du plat (entrée, plat, dessert) "cmbTypePlat" et une liste déroulante liée pour le Nom de la recette "NomRecette".
J'ai superposé à ces deux listes déroulantes des zones de textes qui enregistre ce que j'ai choisis dans les listes déroulantes pour éviter les doublons en formulaire continus. "Texte35" pour le Type de plat et "Texte37" pour le Nom de la Recette.
Pour ceux qui connaissent, j'ai suivi les étapes proposées par le livre "Access 2007 de fond en comble" à la page 516 "Filtrer une liste à l'aide d'une autre liste".

la liste déroulante Nom de Recette est remplie par rapport au type de plat c'est à dire qu'elle contient Id Recette, Nom et RéfType qui a comme critère [Forms]![SSFormPlatMenu]![cmbTypePlat] pour récupéré la valeur de la 1ère liste déroulante

le code de mon Sous Formulaire est le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Texte35_GotFocus()
Me.cmbTypePlat.SetFocus
End Sub
 
Private Sub cmbTypePlat_AfterUpdate()
Me.NomRecette.Requery
Me.NomRecette = Me.NomRecette.ItemData(0)
End Sub
 
Private Sub Texte37_GotFocus()
Me.NomRecette.SetFocus
End Sub
- J'ai créer un Formulaire "Menu" qui contient un contrôle pour donner un nom au menu et le SSFormPlatMenu

Mon problème :

Je n'ai pas de problème lorsque j'ouvre uniquement le SSFormPlatMenu, le lien entre les listes déroulantes fonctionne, a chaque enregistrement il m'indique bien dans les zones de texte ce que je veux. Lorsque je choisi une entrée, dans la deuxième liste déroulante j'ai accès seulement aux noms des recettes correspondant à des entrées
Pour que ce Sous-formulaire fonctionne j'ai été obligé d'enlever ce qui suit dans le VBA de SSFormPlatMenu proposé par le livre :
Code :
1
2
3
4
5
Private Sub Form_Current()
If Not IsNothing (Me.Texte35)Then
Me.cmbTypePlat=Me.Texte35
End If
Me.NomRecette.Requery
Lorsque j'ouvre mon formulaire Menu et que je veux remplir le sous formulaire ça marche pour le Nom du repas et pour le Nb de personne mais lorsque je clique sur ma 1ère liste déroulante TypePlat, Access m'indique une erreur : "Entrer une valeur de paramètre Formulaires!SSFormPlatMenu!cmbTypePlat"
Qu'est ce que cela signifie et pourquoi il ne me l'indique pas quand j'ouvre seulement le sous formulaire?

S'il vous manque des éléments pour pouvoir me comprendre/répondre n'hésitez pas à me les demander. Je vous joints 2/3 prise de vu de ma BDD pour vous aider à me saisir
Je remercie d'avance les personnes qui voudront bien se pencher sur mon petit problème...
Cordialement.

Myriam.
Images attachées
Type de fichier : jpg SSFormPlatMenu continu.jpg (28,6 Ko, 14 affichages)
Type de fichier : jpg FormMenu.jpg (118,7 Ko, 14 affichages)
Type de fichier : jpg Requette cmbNomRecette.jpg (24,1 Ko, 11 affichages)
Type de fichier : jpg VBA SSForm erreur.jpg (31,5 Ko, 14 affichages)
Mimikit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 12h11   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,
Citation:
Envoyé par Mimikit Voir le message
la liste déroulante Nom de Recette est remplie par rapport au type de plat c'est à dire qu'elle contient Id Recette, Nom et RéfType qui a comme critère [Forms]![SSFormPlatMenu]![cmbTypePlat] pour récupéré la valeur de la 1ère liste déroulante
Le critère [Forms]![SSFormPlatMenu]![cmbTypePlat] ne peut fonctionner que lorsque le formulaire est ouvert en tant que formulaire principal.
[Forms] représente la collection des formulaires ouverts.
Les sous-formulaires ne font pas partie de cette collection.

Essaie en mettant comme critère uniquement le nom du contrôle
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 21h41   #3
Invité de passage
 
Inscription : août 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 9
Points : 1
Points : 1
Par défaut Merci!

Oui en effet, ça marche!!!
Vraiment je vous remercie, je tournais un peu en rond toute seule!!!
Merci pour cette aide.
Cordialement.
Myriam.
Mimikit 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 01h29.


 
 
 
 
Partenaires

Hébergement Web