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 29/06/2011, 15h00   #1
Invité de passage
 
Homme charles palhon
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme charles palhon
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 3
Points : 3
Par défaut Sous-formulaire variable en fonction d'une liste déroulante

Bonjour à tous,

je suis débutant et je cherche de l'aide pour du language VBA.
J'ai un formulaire contenant une liste déroulante "NatureCombo";
je voudrais qu'en choisissant un enregistrement dans cette liste,
l'encadré de sous-formulaire situé en-dessous (Sousformspecifique)
se mette à jour en affichant un autre formulaire.

Pour l'instant j'ai l'afterupdate
"
Code :
1
2
3
Private Sub NatureCombo_AfterUpdate ()
  Call UpdateSousformspecifique
End Sub
Puis la procédure UpdateSousformspecifique donne:
Code :
1
2
3
4
5
6
7
8
9
Private Sub UpdateSousformspecifique ()
   Dim y As Integer
   y=Me![NatureCombo].Value
      Select Case y
         Case (plage de nombre pour y correspondant aux CLE_NATURE)
         Me![Sousformspecifique].Rowsource=Forms![FM_30Pi/30Ta/40Ca/60Ma]
         Case (etc...)
      End Select
End Sub
Ma variable local y prend bien la valeur souhaitée,
mais j'obtient l'erreur 2450, access ne trouve pas le formulaire concerné.
Pourtant ce formulaire est bien créé et bien orthographié.

Quelqu'un aurait une soluce ? SVP

Merci beaucoup!!!
carlito0205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 18h55   #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,

Pour changer le formulaire d'un contrôle sous-formulaire il faut utiliser la propriété SourceObject,
à laquelle on affecte le nom du formulaire à afficher en sous-formulaire.

Ensuite, il peut être nécessaire de définir les propriétés LinkMasterFields et LinkChildFields
du contrôle sous-formulaire, pour définir les champs de liaison formulaire/sous-formulaire.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 21h29   #3
Invité de passage
 
Homme charles palhon
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme charles palhon
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 3
Points : 3
merci pour le conseil

Je vais essayer demain aprème pis jte tiens au courant.
carlito0205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 19h17   #4
Invité de passage
 
Homme charles palhon
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme charles palhon
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 3
Points : 3
ça n'a pas marché.

J'ai remplacé mes RowSource par des SourceObject
et j'ai rajouter les link à chaque ligne mais le résultat ne change pas.
J'obtient toujours l'erreur 2450 et le message comme quoi access ne trouve pas le formulaire spécifié.

De ce que j'ai lu dans l'aide, le SourceObject permet d'importer des objets contenus dans d'autres formulaires, mais il n'est rien dit sur les formulaire eux meme .

Je me souviens plus quelle est la différence entre le " . " et le " ! " que je mets dans ma synthaxe. Je suis persuadé que le problème réside dans ma synthaxe, ou dans le nom de mon formulaire (caractères inadéquates)
carlito0205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2011, 19h29   #5
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
Bonsoir,

Il faut affecter à la propriété SourceObject le nom d'un formulaire.
Le nom d'un formulaire est celui que l'on voit dans le volet de navigation, sous la rubrique Formulaires.

Dans le code que tu as posté, la ligne ...
Code :
         Me![Sousformspecifique].SourceObject = Forms![FM_30Pi/30Ta/40Ca/60Ma]
... ne me paraît pas correcte.
Je doute que l'expression ...
Code :
Forms![FM_30Pi/30Ta/40Ca/60Ma]
... renvoie le nom d'un formulaire.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 10h27   #6
Invité de passage
 
Homme charles palhon
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme charles palhon
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 3
Points : 3
a si si jte promets lol.
"FM_30Pi/30Ta/40Ca/60Ma" est bien le nom d'un de mes formulaires .

Par contre je ne sais pas si c'est important mais ce formulaire (comme tout ceux auxquels je veux faire appel) ont été créé à partir d'une seule et meme table. Je me suis servi de la meme table à chaque fois pour tous les créer mais en ne conservant que les champs qui m'intéressaient à chaque fois
carlito0205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2011, 18h05   #7
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 carlito0205 Voir le message
a si si jte promets lol.
"FM_30Pi/30Ta/40Ca/60Ma" est bien le nom d'un de mes formulaires .
Dans ce cas il faudrait écrire
Code :
         Me![Sousformspecifique].SourceObject = "FM_30Pi/30Ta/40Ca/60Ma"
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2011, 13h22   #8
Invité de passage
 
Homme charles palhon
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme charles palhon
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 3
Points : 3
Mais carrément lol!!!
dsl j'avais pas compris. Merci beaucoup.
J'essayerai ça Lundi matin pis jte tiens au courant.
carlito0205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 09h27   #9
Invité de passage
 
Homme charles palhon
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme charles palhon
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 3
Points : 3
C'est bon ça fonctionne!!

j'ai changé toutes les instructions "Case" contenu dans mon "Select Case"
sous la forme:

Code :
1
2
Case 89 '(cas pris au hasard dans tous mes cas)
     Me![Sousformspecifique].SourceObject = "FM_30Pi/30Ta/40Ca" '(nom de mon formulaire mis entre guillemets)
Comme le formulaire et le sous-formulaire trouve leur origine dans la meme table, pas besoin de masterlink ou de childlink.

Pour finir, j'ai programmé un évenement sur ouverture de formulaire pour que le sousformspecifique se mette à jour et j'ai donné une valeur pardéfaut à mon "y" (sinon il peut y avoir un message d'erreur lors de l'ouverture du formulaire car il n'y a aucune valeur dans "y" (Null)).


Merci beaucoup!!!!
carlito0205 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2011, 09h30   #10
Invité de passage
 
Homme charles palhon
Étudiant
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme charles palhon
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 3
Points : 3
ERRATUM: la valeur par défaut n'a pas été placée dans y mais dans la combo box "Nature". Donc y prend par programmation la valeur 0
carlito0205 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 02h39.


 
 
 
 
Partenaires

Hébergement Web