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 05/01/2012, 14h50   #1
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 14
Points : 3
Points : 3
Par défaut Ouvrir un sous-formulaire différent dans un formulaire selon un champ

Bonjour.
Je débute sous Access et j'essaie de mettre en place une base de données pour gérer des actes administratifs.

J'ai créé un formulaire "frm actes" qui sert de base. A l'intérieur, il y a un champ "typeacte".
Je voudrais, en fonction de ce champ, ouvrir un formulaire différent.
En effet, selon le type d'acte, je n'ai pas les mêmes données à rentrer.

J'ai créé un sous-formulaire pour chaque type d'acte.
Je voudrais maintenant faire le lien entre le formulaire de base et ceux-ci.

J'ai nommé chaque formulaire "frm 01", "frm 02"... ainsi de suite.
Dans la table référençant les types d'actes, j'ai ajouté un champ "nomsfm" où j'indique pour chacun le formulaire à ouvrir.

Je pensais définir une zone dans mon formulaire "frm actes" dont la source varierait en fonction du champ "typeacte". Est-ce possible?
surumeika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 22h44   #2
Membre éclairé
 
Avatar de tee_grandbois
 
Inscription : novembre 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 216
Points : 321
Points : 321
Bonsoir,
oui, il est possible de définir le sous-formulaire à ouvrir en fonction d'un champ, il suffit de définir l'Objet source de ton sous-formulaire sur l'évènement adéquat avec un code de ce genre :
Code :
1
2
3
4
5
6
Select Case Me.TypeActe
Case "Acte1"
Me.MonSFrm.SourceObject = "SForm_01"
Case "Acte2"
Me.MonSFrm.SourceObject = "SForm_02"
Case ...
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 10h53   #3
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 14
Points : 3
Points : 3
çà marche nickel!!!

Merci beaucoup.
surumeika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 11h03   #4
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 14
Points : 3
Points : 3
Cependant, j'ai 36 type d'actes différents... J'ai donc rajouté dans la table référençant ces actes, un champ "nomfrm", indiquant le formulaire correspondant.
Peut-on envisager que selon le type d'actes, la sourceobject soit automatiquement renseignée à partir de cette table?
Le but étant de réduire le code...
En passant par une requête?
surumeika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 21h43   #5
Membre éclairé
 
Avatar de tee_grandbois
 
Inscription : novembre 2004
Messages : 216
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 216
Points : 321
Points : 321
Bonsoir,
si tu as une table associant le type d'acte et le sous-formulaire c'est beaucoup plus facile (et d'ailleurs un bon réflexe ) : une fois l'acte choisi, il faut mettre sur l'événement qui va bien le code ci-dessous (par exemple, sur le clic d'un bouton)
Code :
Me.MonSFrm.SourceObject = me.nomsfrm
Ou si c'est par liste déroulante (combo box)
Code :
Me.MonSFrm.SourceObject = me.TypeActe.column(1)
la colonne 0 étant le type d'acte et la 1, le sous-formulaire.
tee_grandbois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2012, 12h00   #6
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 14
Points : 3
Points : 3
Cela fonctionne très bien, et c'est beaucoup plus pratique.
Cependant, la 1° solution m'a été utile pour résoudre un autre problème!
Merci à tous!
surumeika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2012, 12h16   #7
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 14
Points : 3
Points : 3
Par défaut créer l'état correspondant

Bonjour!
La solution que vous m'aviez proposée fonctionne parfaitement. Mais je me trouve confronter à un problème lié: la création de l'état correspondant.

J'ai essayé d'appliquer la même méthode pour faire varier la source de mon sous-état, mais çà ne marche pas: "Méthode ou membre de données introuvable (erreur 461)'

J'ai ensuite essayé avec "sourceobject"
Code :
1
2
3
4
5
Private Sub Report_Open(Cancel As Integer)
Dim sourceMonSRpt As String
sourceMonSRpt = Forms![frmlisteactes]![sfmlisteactes]!cmbnomfrm
Me.MonSRpt.SourceObject = sourceMonSRpt
End Sub
J'obtiens le message d'erreur:
Citation:
"erreur d’exécution 2101: le paramètre entré n'est pas valable pour cette propriété".
surumeika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2012, 10h37   #8
Invité de passage
 
Femme
Inscription : décembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2011
Messages : 14
Points : 3
Points : 3
J'ai trouvé la réponse toute seule.
Je mets mon code si cela peut servir à quelqu'un.

Code :
1
2
3
Private Sub Report_Open(Cancel As Integer)
Reports![rptacte].[MonSRpt].SourceObject = Forms![frmlisteactes]![sfmlisteactes]!cmbnomrpt
End Sub
surumeika 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 21h06.


 
 
 
 
Partenaires

Hébergement Web