OVH Cloud OVH Cloud

Ouvrir un sousformulaire dans une nouvelle fenêtre

6 réponses
Avatar
Julien Arlandis
Bonsoir,
J'ai un formulaire principal et un sous formulaire associé, je voudrais
pouvoir lancer le sous formulaire dans une nouvelle fenêtre à partir du
formulaire principal (en cliquant sur un bouton) et en affichant que les
lignes liées à l'ID de l'enregistrement en cours. Comment faire?

6 réponses

Avatar
fth
Bonsoir,

si j'ai bien compris ta demande, c'est assez simple

ajoute un bouton dans ton formulaire principal
dans les evenement- sur click (ou double click, au choix!)

voici le code obtenu en utilisant le "wizard" d'access

Private Sub Command14_Click()
On Error GoTo Err_Command14_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "licencies"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Command14_Click:
Exit Sub

Err_Command14_Click:
MsgBox Err.Description
Resume Exit_Command14_Click

End Sub

Pour la relation entre les deux documents, rien ne t'empeche de creer la
liaison dans le sous formulaire ..

ça répond à ta question?

Bnne soirée

Frédéric



"Julien Arlandis" wrote in message
news:l_ctg.234$
Bonsoir,
J'ai un formulaire principal et un sous formulaire associé, je voudrais
pouvoir lancer le sous formulaire dans une nouvelle fenêtre à partir du
formulaire principal (en cliquant sur un bouton) et en affichant que les
lignes liées à l'ID de l'enregistrement en cours. Comment faire?


Avatar
Julien Arlandis
Bonsoir,

si j'ai bien compris ta demande, c'est assez simple

ajoute un bouton dans ton formulaire principal
dans les evenement- sur click (ou double click, au choix!)

voici le code obtenu en utilisant le "wizard" d'access

Private Sub Command14_Click()
On Error GoTo Err_Command14_Click

Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "licencies"
DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Command14_Click:
Exit Sub

Err_Command14_Click:
MsgBox Err.Description
Resume Exit_Command14_Click

End Sub

Pour la relation entre les deux documents, rien ne t'empeche de creer la
liaison dans le sous formulaire ..

ça répond à ta question?


En faisant celà je vais récupérer tous les enregistrements du sous
formulaire et pas seulement ceux liés à la clef primaire de mon
formulaire principal.

Bnne soirée

Frédéric



"Julien Arlandis" wrote in message
news:l_ctg.234$
Bonsoir,
J'ai un formulaire principal et un sous formulaire associé, je voudrais
pouvoir lancer le sous formulaire dans une nouvelle fenêtre à partir du
formulaire principal (en cliquant sur un bouton) et en affichant que les
lignes liées à l'ID de l'enregistrement en cours. Comment faire?






Avatar
Eric
Bonjour,

Les 2 tables étant en relation, tu utilises l'assistant Formulaire, tu
choisis la 1ere table et les champs que tu veux puis, toujours à la 1ere
étape, la 2eme table avec ses champs (comme si tu voulais créer un
formulaire avec sous-formulaire). A l'étape suivante "Comment
souhaitez-vous afficher vos données", tu coches la case Formulaires
attachés au lieu de Formulaire avec sous-formulaire.

Autre solution, les 2 formulaires existant, sur l'évènement clic du bouton:
DoCmd.OpenForm "LeFormulaireAssocié",,,"LeChampCleEtrangere=" &
Me.LeChampClePrimaire ' si numérique

DoCmd.OpenForm "LeFormulaireAssocié",,,"LeChampCleEtrangere='" &
Me.LeChampClePrimaire & "'" ' si texte

Bonsoir,
J'ai un formulaire principal et un sous formulaire associé, je voudrais
pouvoir lancer le sous formulaire dans une nouvelle fenêtre à partir du
formulaire principal (en cliquant sur un bouton) et en affichant que les
lignes liées à l'ID de l'enregistrement en cours. Comment faire?


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Julien Arlandis
Bonjour,

Les 2 tables étant en relation, tu utilises l'assistant Formulaire, tu
choisis la 1ere table et les champs que tu veux puis, toujours à la 1ere
étape, la 2eme table avec ses champs (comme si tu voulais créer un
formulaire avec sous-formulaire). A l'étape suivante "Comment
souhaitez-vous afficher vos données", tu coches la case Formulaires
attachés au lieu de Formulaire avec sous-formulaire.

Autre solution, les 2 formulaires existant, sur l'évènement clic du bouton:
DoCmd.OpenForm "LeFormulaireAssocié",,,"LeChampCleEtrangere=" &
Me.LeChampClePrimaire ' si numérique

DoCmd.OpenForm "LeFormulaireAssocié",,,"LeChampCleEtrangere='" &
Me.LeChampClePrimaire & "'" ' si texte


Merci, c'est la réponse que j'attendais. Y a t-il une doc quelque part
sur le net qui décrit les propriétés et les méthodes des objets VBA
utilisés par access?

Bonsoir,
J'ai un formulaire principal et un sous formulaire associé, je
voudrais pouvoir lancer le sous formulaire dans une nouvelle fenêtre à
partir du formulaire principal (en cliquant sur un bouton) et en
affichant que les lignes liées à l'ID de l'enregistrement en cours.
Comment faire?





Avatar
Julien Arlandis
Bonjour,

Les 2 tables étant en relation, tu utilises l'assistant Formulaire, tu
choisis la 1ere table et les champs que tu veux puis, toujours à la
1ere étape, la 2eme table avec ses champs (comme si tu voulais créer
un formulaire avec sous-formulaire). A l'étape suivante "Comment
souhaitez-vous afficher vos données", tu coches la case Formulaires
attachés au lieu de Formulaire avec sous-formulaire.

Autre solution, les 2 formulaires existant, sur l'évènement clic du
bouton:
DoCmd.OpenForm "LeFormulaireAssocié",,,"LeChampCleEtrangere=" &
Me.LeChampClePrimaire ' si numérique

DoCmd.OpenForm "LeFormulaireAssocié",,,"LeChampCleEtrangere='" &
Me.LeChampClePrimaire & "'" ' si texte



Je voudrais faire la même chose avec DoCmd.OpenQuery, c'est à dire que
je voudrais envoyer dynamiquement un critère de requêtes dans la requête
sans passer par la boite de dialogue. Comment faire?


Bonsoir,
J'ai un formulaire principal et un sous formulaire associé, je
voudrais pouvoir lancer le sous formulaire dans une nouvelle fenêtre
à partir du formulaire principal (en cliquant sur un bouton) et en
affichant que les lignes liées à l'ID de l'enregistrement en cours.
Comment faire?







Avatar
Eric
Bonjour,

Il n'y a pas de possibilité de clause where sur la commande DoCmd.OpenQuery.
Pour ce faire, il faut mettre en critère du champ concerné dans la
requête quelque chose comme Forms!NomFormulaire!NomChampFormulaire mais
cette construction implique alors que le formulaire soit ouvert pour que
la requête puisse fonctionner.


Je voudrais faire la même chose avec DoCmd.OpenQuery, c'est à dire que
je voudrais envoyer dynamiquement un critère de requêtes dans la requête
sans passer par la boite de dialogue. Comment faire?




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr