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 27/07/2011, 12h10   #1
Membre du Club
 
Inscription : mars 2007
Messages : 292
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : mars 2007
Messages : 292
Points : 62
Points : 62
Par défaut Ouvrir un formulaire depuis un sous formulaire

Bonjour à tous, je relance ma question avec plus d'explications.

- J'ai une table nommée "Tbl_Agents" avec comme clef "Id_Agents"
- J'ai une table nommée "Tbl_Demandes" reliée à la "Tbl_Agents" par "l'Id_Agents".
- J'ai une table nommée "Tbl_Etat_Commandes" reliée à la "Tbl_Demandes" par "l'Id_Demandes".

J'ai un formulaire nommé ""Frm_Agents" et à l'intérieur un sous formulaire nommé "Frm_Demandes" avec un bouton de commande nommé "Etat Commandes" pour ouvrir un formulaire nommé "Frm_Etat_commandes"

Lorsque je clic sur le bouton "Etat Commande" le formulaire "Frm_Etat_Commandes" s'ouvre bien sauf que "l'Id_Demandes" affiches #Nom?
et access refuse d'enregistrer les données car l'enregistrement est requis dans la table Demandes.

Voilà si quelqu'un peut me donner un coup de main, je le remercie d'avance.
ThieBEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 12h20   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 086
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 086
Points : 11 622
Points : 11 622
Bonjour,

Une sauvegarde avant l'ouverture ?

Code :
1
2
docmd.runcommand accdmSaveRecord
docmd.openform....
A moins qu'il y ait un truc que tu occultes ?

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 13h45   #3
Membre du Club
 
Inscription : mars 2007
Messages : 292
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : mars 2007
Messages : 292
Points : 62
Points : 62
J'ai omis de dire que "Frm_Agents" est le formulaire principal.
Voici le code de mon bouton du sous formulaire "Frm_demandes" qui ouvre le "Frm_Etat_commande"
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Commande17_Click()
On Error GoTo Err_Commande17_Click
 
    Dim stDocName As String
    Dim stLinkCriteria As String
 
    stDocName = "Frm_Etat_Commande"
 
    stLinkCriteria = "[Id_Demandes]=" & Me![Id_Demandes]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
 
Exit_Commande17_Click:
    Exit Sub
 
Err_Commande17_Click:
    MsgBox Err.Description
    Resume Exit_Commande17_Click
 
End Sub
Puis dans le contôle "Id-demandes" du Frm_Etat_Commandes"
Valeur par défaut :
Code :
=[Formulaires]![Frm_Demandes]![Id_Demandes]
Le code que tu m'as donné m'indique que l'Action Rundcommand a été annulée.
Merci Loufab pour ton aide
ThieBEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 14h30   #4
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 086
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 086
Points : 11 622
Points : 11 622
haaa ok ! Tu es comme ces rideaux qu'on appelle "Occultant"

Si c'est le formulaire principal qu'il faut sauver utilise

Code :
me.parent.dirty = false
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 15h04   #5
Membre du Club
 
Inscription : mars 2007
Messages : 292
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : mars 2007
Messages : 292
Points : 62
Points : 62
Non les enregistrements à sauvegarder sont dans le "Frm_Etat_Commande" ouvert depuis le sous formulaire "Frm_Demandes" du "Frm_Agents".
Je ne sais pas si je suis bien clair.

En fait, il faut que je coche des cases dans le "Frm_Etat_commande" qui correspondent au données du sous formulaire "frm_demandes" qui correspond à un enregistrement du "Frm_Agents"

La question y a t-il un code particulier "une condition" pour permettre l'ouverture d'un formulaire depuis un sous formulaire qui se trouve dans un formulaire principal?

Merci de ton aide
ThieBEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2011, 17h32   #6
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Bonjour,

Votre code d'ouverture est bon, par contre la syntaxe de la valeur par défaut me semblerait plus adaptée avec :

Code :
=[Formulaires]![Frm_Agents]![Frm_Demandes].[Formulaire]![Id_Demandes]
Bcdt
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 07h21   #7
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 086
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 086
Points : 11 622
Points : 11 622
Bonjour,

Il y a quelque chose qui m'échappe dans ton code :

Ici tu filtres ton appel à l'ouverture de "Frm_Etat_Commande" :

Code :
1
2
    stLinkCriteria = "[Id_Demandes]=" & Me![Id_Demandes]
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Cela veut dire que Id_Demandes existe en tant que clef externe. Puis ensuite tu dis avoir placé un defaultvalue avec cette valeur :

Code :
=[Formulaires]![Frm_Demandes]![Id_Demandes]
qui comme le dit à juste titre Fbtsra devrait plutôt être
Code :
=[Formulaires]![Frm_Agents]![Frm_Demandes].[Formulaire]![Id_Demandes]
Pourquoi placer un defaultvalue si la valeur existe comme ton where le laisse supposer ?

Il y a une logique qui m'échappe.
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 11h32   #8
Membre du Club
 
Inscription : mars 2007
Messages : 292
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : mars 2007
Messages : 292
Points : 62
Points : 62
Bonjour et merci de votre aide,
Le code fonctionne, en revanche quand j'ouvre le "Frm_Etat_Commandes" et que je coche une case, il me dit que je ne peux pas ajouter ou enregistrer car l'enregistrement associé est requis dans la "Tbl_Demandes". Apparemment il faut rafraichir le "Frm_Demandes" pour pourvoir enregistrer les données dans le "Frm_Etat_Commandes". Sûr que quelque chose m'échappe mais quoi?
En ajoutant un bouton de commande "sauvegarder l'enregistrement dans le "Frm_Demandes"ça fonctionne mais il faut à chaque fois valider le "Frm_Demandes".
Merci
ThieBEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 15h44   #9
Membre du Club
 
Inscription : mars 2007
Messages : 292
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : mars 2007
Messages : 292
Points : 62
Points : 62
Bonjour à tous, j'ai forcé l'enregistrement sur le bouton de commande du Frm_Demandes avec Une autre question quand il s'agit d'ouvrir un formulaire à partir d'un sous sous formulaire le code est-il le même que celui que vous m'aviez donné

Exemple : Depuis mon sous formulaire "Frm_Demandes" j'ai un sous sous formulaire "Frm_Equipements" en mode continu avec un bouton de commande pour chaque équipement qui m'ouvre un formulaire images qui correspond a un enregistrement du sous sous formulaire "Frm_équipement"

J'avais pensé en partant du code que vous m'aviez indiqué écrire comme cela dans le contrôle Id_Equipement du "Frm_Images" :
Code :
=[Formulaires]![Frm_Agents]![Frm_Demandes]![Frm_Equipement].[Formulaire]![Id_Equipement]
Apparemment ça ne fonctionne pas.
Merci de votre aide
ThieBEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 08h01   #10
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 086
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 086
Points : 11 622
Points : 11 622
Bonjour,

inutile de penser dans ce cas, il faut simplement appliquer.

Voir mon tuto sur les appels formulaires. ici http://loufab.developpez.com/tutorie...pelformulaire/


L'ouverture d'un formulaire est identique (F1).

Code :
docmd.openform "nomduform"
Ce qui peut changer c'est lors de l'utilisation des options WHERE et FILTER.

Dans ce cas il faut appliquer ce qui est expliqué dans le tuto.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 11h07   #11
Membre du Club
 
Inscription : mars 2007
Messages : 292
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : mars 2007
Messages : 292
Points : 62
Points : 62
Bonjour et merci à Loufab pour sa patience.
J'ai regardé le tuto qui est très bien fait, le problème c'est que je ne sais pas où mettre le ou les codes, la bonne syntaxe, pour ouvrir mon formulaire depuis le sous sous formulaire sur un enregistrement spécifique.
ThieBEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 12h56   #12
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 086
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 086
Points : 11 622
Points : 11 622
Dans le module du soussousform me parait le plus simple. Non ?
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 15h47   #13
Membre du Club
 
Inscription : mars 2007
Messages : 292
Détails du profil
Informations personnelles :
Âge : 52

Informations forums :
Inscription : mars 2007
Messages : 292
Points : 62
Points : 62
Mes excuses Loufab, entre mon message et ta réponse j'ai collé dans le contrôle "Id_Equipement" du "Frm-Image" ceci :
Code :
[Formulaires].[Frm_Agents].[Frm_Demandes].[Formulaire].[Frm_Equipement].[Formulaire].[Id_Equipement]
Issu de ton tuto et ça fonctionne.
Merci de ton aide et encore bravo pour ton tuto.
ThieBEN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 16h58   #14
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 086
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 086
Points : 11 622
Points : 11 622
Super ! n'oublie pas le bouton Résolu !
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab 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 15h16.


 
 
 
 
Partenaires

Hébergement Web