Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recuperer le nom d'une form ou d'une subform

5 réponses
Avatar
FreThi
Bonjour, bonsoir

Je pensais naivement arriver à mes fins avec ce bout de code:

Dim MyFormName As String
MyFormName = Me.Form.Caption
Me!MyTxtFormName = MyFormName

afin de récupérer le nom de la Subform dans laquelle je me trouve (celle
d'access, pas ma forme à moi.. Je pouffe)
et bien zut et fourt
ça ne fonctionne pas
donc je me trompe qq part...

Le but ultime est de récupérer soit le nom de la Form ou d'une SubForm pour
donner un nom à un fichier (mais ça, c'est une autre histoire..)

Merci à vous,

Frédéric

5 réponses

Avatar
Raymond [mvp]
Bonjour.

dans le formulaire principal:
Dim MyFormName As String
MyFormName = Me.Name
'récupère le nom du formulaire principal

dans le sous-formulaire:
Dim MyFormName As String
MyFormName = Me.Name
'récupère le nom du sous-formulaire dans lequel on se trouve

hé oui, procédure identique.

Dim MyFormName As String
MyFormName = Me.Parent.Name
'récupère le nom du formulaire principal dans lequel se trouve le
sous-formulaire dans lequel on se trouve.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"FreThi" a écrit dans le message de news:

| Bonjour, bonsoir
|
| Je pensais naivement arriver à mes fins avec ce bout de code:
|
| Dim MyFormName As String
| MyFormName = Me.Form.Caption
| Me!MyTxtFormName = MyFormName
|
| afin de récupérer le nom de la Subform dans laquelle je me trouve (celle
| d'access, pas ma forme à moi.. Je pouffe)
| et bien zut et fourt
| ça ne fonctionne pas
| donc je me trompe qq part...
|
| Le but ultime est de récupérer soit le nom de la Form ou d'une SubForm
pour
| donner un nom à un fichier (mais ça, c'est une autre histoire..)
|
| Merci à vous,
|
| Frédéric
|
Avatar
FreThi
Bonsoir Raymond,

Toujours la bonne idée.
Merci

En fait, voila ce que je cherche à faire:
remplacer la ligne suivante

Set rec = Forms!MaForm!MaSubForm.Form.Recordset
par
Set rec = Forms!VariableMaForme!VariableMaSubForm.Form.Recordset

Est-ce faisable?

d'avance merci.

Frédéric

"Raymond [mvp]" wrote in message
news:e7e$
Bonjour.

dans le formulaire principal:
Dim MyFormName As String
MyFormName = Me.Name
'récupère le nom du formulaire principal

dans le sous-formulaire:
Dim MyFormName As String
MyFormName = Me.Name
'récupère le nom du sous-formulaire dans lequel on se trouve

hé oui, procédure identique.

Dim MyFormName As String
MyFormName = Me.Parent.Name
'récupère le nom du formulaire principal dans lequel se trouve le
sous-formulaire dans lequel on se trouve.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"FreThi" a écrit dans le message de news:

| Bonjour, bonsoir
|
| Je pensais naivement arriver à mes fins avec ce bout de code:
|
| Dim MyFormName As String
| MyFormName = Me.Form.Caption
| Me!MyTxtFormName = MyFormName
|
| afin de récupérer le nom de la Subform dans laquelle je me trouve (celle
| d'access, pas ma forme à moi.. Je pouffe)
| et bien zut et fourt
| ça ne fonctionne pas
| donc je me trompe qq part...
|
| Le but ultime est de récupérer soit le nom de la Form ou d'une SubForm
pour
| donner un nom à un fichier (mais ça, c'est une autre histoire..)
|
| Merci à vous,
|
| Frédéric
|




Avatar
Raymond [mvp]
Bonjour.

il sera plus rapide et plus simple de faire:

Dim Rs As DAO.Recordset
Set Rs = Me.Recordset

Dim Rs1 As DAO.Recordset
Set Rs1 = Me.Parent.Recordset

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"FreThi" a écrit dans le message de news:

| Bonsoir Raymond,
|
| Toujours la bonne idée.
| Merci
|
| En fait, voila ce que je cherche à faire:
| remplacer la ligne suivante
|
| Set rec = Forms!MaForm!MaSubForm.Form.Recordset
| par
| Set rec = Forms!VariableMaForme!VariableMaSubForm.Form.Recordset
|
| Est-ce faisable?
|
| d'avance merci.
|
| Frédéric
|
Avatar
FreThi
Bon sang, mais c'est bien sur ! ...
Sauf que..:

La procédure complete est un code qui manipule les datas et les transferent
vers Excel (code trouvé chez un participant au forum)
Je veux mettre ma procédure dans un module et en Public de manière à pouvoir
l'atteindre de n'importe ou dans le prog.
Hors, le ".me" ne passe pas dans une public procedure ...

..Je m'attend encore à te lire avec une solution simple et efficace..et que
je ne trouve pas...

Merci à toi,

Frédéric


"Raymond [mvp]" wrote in message
news:%
Bonjour.

il sera plus rapide et plus simple de faire:

Dim Rs As DAO.Recordset
Set Rs = Me.Recordset

Dim Rs1 As DAO.Recordset
Set Rs1 = Me.Parent.Recordset

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"FreThi" a écrit dans le message de news:

| Bonsoir Raymond,
|
| Toujours la bonne idée.
| Merci
|
| En fait, voila ce que je cherche à faire:
| remplacer la ligne suivante
|
| Set rec = Forms!MaForm!MaSubForm.Form.Recordset
| par
| Set rec = Forms!VariableMaForme!VariableMaSubForm.Form.Recordset
|
| Est-ce faisable?
|
| d'avance merci.
|
| Frédéric
|




Avatar
Raymond [mvp]
bien sûr qu'on peut travailler dans une fonction avec le formulaire actif
Me.

place une fonction public dans un module standard, telle que:

Public Function Leform(ObjetForm As Form) As Boolean
MsgBox ObjetForm.Name
MsgBox ObjetForm!Texte1
End Function

dans ton formulaire sur le click d'un bouton par exemple tu mets:

Public Sub Commande0_Click()
Leform Me
End Sub

tu verras ce que ça donne et tu n'auras pas besoin d'explications
complémentaires.
dans ta fonction Leform qui reçoit l'objet Me en paramètre (ton formulaire
actif) sous le nom de ObjetForm, tu peux travailler comme si tu étais dans
ton formulaire et au lieu d'indiquer Me, tu indiques ObjetForm .
donc dans ta fonction tu peux recevoir n'importe quel objet form de ton
application et atteindre n'importe quel contrôle de ce même objet form.

ouala.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Non Stop Mix '07 - Paris. La nouvelle scène web fête la créativité !
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"FreThi" a écrit dans le message de news:

| Bon sang, mais c'est bien sur ! ...
| Sauf que..:
|
| La procédure complete est un code qui manipule les datas et les
transferent
| vers Excel (code trouvé chez un participant au forum)
| Je veux mettre ma procédure dans un module et en Public de manière à
pouvoir
| l'atteindre de n'importe ou dans le prog.
| Hors, le ".me" ne passe pas dans une public procedure ...
|
| ..Je m'attend encore à te lire avec une solution simple et efficace..et
que
| je ne trouve pas...
|
| Merci à toi,
|
| Frédéric