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

Savoir de quel formulaire est ouvert un état

6 réponses
Avatar
Isa
Bonjour,

Je m'explique mieux :
J'ai un état qui peut être ouvert à partir de 2 formulaires différents (j'ai
un bouton dans chaque formulaire).
Je souhaiterais savoir s'il est possible de connaître de quel form a été
ouvert l'état.
D'avance merci de vos réponses.

Isa.

6 réponses

Avatar
RaphK34
Salut,
si ton le form (et pas l'autre) qui a ouvert l'état est chargé, tu peux peut
être utiliser:
Public Function IsLoaded(ByVal strFormName As String) As Boolean
If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> 0 Then
If Forms(strFormName).CurrentView <> 0 Then
IsLoaded = True
End If
End If
End Function


--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !
--------------------------------------------
"Isa" a écrit dans le message de news:

Bonjour,

Je m'explique mieux :
J'ai un état qui peut être ouvert à partir de 2 formulaires différents
(j'ai
un bouton dans chaque formulaire).
Je souhaiterais savoir s'il est possible de connaître de quel form a été
ouvert l'état.
D'avance merci de vos réponses.

Isa.



Avatar
3stone
Salut,

"Isa"
| Je m'explique mieux :
| J'ai un état qui peut être ouvert à partir de 2 formulaires différents (j'ai
| un bouton dans chaque formulaire).
| Je souhaiterais savoir s'il est possible de connaître de quel form a été
| ouvert l'état.


Selon ta version d'Access, il est facile de transmettre le nom du formulaire
appelant via les arguments de la commande "OpenReport"

Sous ton bouton, tu trouves :

DoCmd.OpenReport stDocName, acNormal, , , , Me.Name

que tu complètes par son paramètre OpenArgs...

Sur ouverture de l'état, tu lis la valeur de cet argument...

if Not isnull(me.openargs) then
MaZoneDeTexte = Me.OpenArgs
end if

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
RaphK34
Bien plus simple, en effet !

--
@+ Raph.

--------------------------------------------
Merci de répondre sur le NG
Toutes remarques bienvenues !
--------------------------------------------
"3stone" a écrit dans le message de news:
%
Salut,

"Isa"
| Je m'explique mieux :
| J'ai un état qui peut être ouvert à partir de 2 formulaires différents
(j'ai
| un bouton dans chaque formulaire).
| Je souhaiterais savoir s'il est possible de connaître de quel form a été
| ouvert l'état.


Selon ta version d'Access, il est facile de transmettre le nom du
formulaire
appelant via les arguments de la commande "OpenReport"

Sous ton bouton, tu trouves :

DoCmd.OpenReport stDocName, acNormal, , , , Me.Name

que tu complètes par son paramètre OpenArgs...

Sur ouverture de l'état, tu lis la valeur de cet argument...

if Not isnull(me.openargs) then
MaZoneDeTexte = Me.OpenArgs
end if

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Avatar
Isa
Cette solution me plait bien, je l'avais déjà utilisé sur un OpenForm mais là
sur le OpenReport, il n'y a pas possibilité de mettre le paramètre OpenArgs
(Je suis en Access 2000).
As-tu une solution ?
Merci.

"3stone" wrote:

Salut,

"Isa"
| Je m'explique mieux :
| J'ai un état qui peut être ouvert à partir de 2 formulaires différents (j'ai
| un bouton dans chaque formulaire).
| Je souhaiterais savoir s'il est possible de connaître de quel form a été
| ouvert l'état.


Selon ta version d'Access, il est facile de transmettre le nom du formulaire
appelant via les arguments de la commande "OpenReport"

Sous ton bouton, tu trouves :

DoCmd.OpenReport stDocName, acNormal, , , , Me.Name

que tu complètes par son paramètre OpenArgs...

Sur ouverture de l'état, tu lis la valeur de cet argument...

if Not isnull(me.openargs) then
MaZoneDeTexte = Me.OpenArgs
end if

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)




Avatar
Isa
J'ai essayé aussi avec une variable globale mais elle n'est pas visible dans
le report...

"Isa" wrote:

Cette solution me plait bien, je l'avais déjà utilisé sur un OpenForm mais là
sur le OpenReport, il n'y a pas possibilité de mettre le paramètre OpenArgs
(Je suis en Access 2000).
As-tu une solution ?
Merci.

"3stone" wrote:

Salut,

"Isa"
| Je m'explique mieux :
| J'ai un état qui peut être ouvert à partir de 2 formulaires différents (j'ai
| un bouton dans chaque formulaire).
| Je souhaiterais savoir s'il est possible de connaître de quel form a été
| ouvert l'état.


Selon ta version d'Access, il est facile de transmettre le nom du formulaire
appelant via les arguments de la commande "OpenReport"

Sous ton bouton, tu trouves :

DoCmd.OpenReport stDocName, acNormal, , , , Me.Name

que tu complètes par son paramètre OpenArgs...

Sur ouverture de l'état, tu lis la valeur de cet argument...

if Not isnull(me.openargs) then
MaZoneDeTexte = Me.OpenArgs
end if

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)






Avatar
3stone
Salut,

"Isa"
| Cette solution me plait bien, je l'avais déjà utilisé sur un OpenForm mais là
| sur le OpenReport, il n'y a pas possibilité de mettre le paramètre OpenArgs
| (Je suis en Access 2000).
| As-tu une solution ?


Dans ce cas, pas de possibilité d'utiliser cet argument, qui n'est disponible
que depuis Access 2002, me semble t-il...

Par contre, une variable déclarée "Public" en haut d'un module général
fera aussi l'affaire, même si moins élégament ;-)

Public FrmAppelant As Variant

Dans tes formulaires, par exemple sur chargement, tu fais :

FrmAppelant = Me.Name

et dans l'état, tu récupère le nom...

if Not isnull(FrmAppelant) Then
' tu décides ici...
end if

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)