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

Gestion d'erreur dans Sub de sous formulaire ? ?

4 réponses
Avatar
News Groups
Bonjour à tous

Voilà ma situation :
J'ai un formulaire MonFormA qui est utilisé
soit comme sous formulaire dans les formulaires principaux MonFormB et
MonFormC
soit comme formulaire principal normal.
Dans MonFormA j'ai une Sub qui appelle une autre routine Sub présente dans
les formulaires parents MonFormB et MonFormC :

* Sub présente dans MonFormB et MonFormC :
Public Sub MaSubToto ()
...
End Sub

* Sub présente dans MonFormA :
Public Sub MaSubFormA ()
...
Call Me.Parent.MaSubToto()
End Sub

Le problème est le suivant :
Dans le cas où MonFormA est utilisé comme sous formulaire de MonFormB ou
MonFormC
l'instruction "..Call Me.Parent.MaSubToto().." ne pose pas de soucis
Par contre si MonFormA est ouvert comme formulaire normal,
une erreur se produit sur "..Call Me.Parent.MaSubToto()..",
" Erreur : 2452 / La référence de la propriété Parent de l'expression entrée
n'est pas correcte",
évidemment car il n'y pas de formulaire parent dans ce cas.

Comment faire afin de passer outre l'instruction "..Call
Me.Parent.MaSubToto().."
dans le cas où MonFormA n'est pas un sous formulaire ??

Je ne sais comment définir que MonFormA est ouvert en mode "sous formulaire"
ou "formulaire" ??

Alors, bien que je n'aime pas trop ce type de méthode, j'ai essayé avec une
gestion d'erreur :
On Error Resume Next
Call Me.Parent.MaSubToto()
Mais cela ne marche pas du moins avec cette syntaxe !

Si quelqu'un peut me venir en aide ...??

Merci encore,
Thierry.

4 réponses

Avatar
Raymond [mvp]
Bonsoir.

tu peux utiliser ceci qui n'est pas très dans la norme:

On Error GoTo PasdeParent
If Me.Parent.Name = "" Then
End If
MsgBox "j'ai un parent"
' suite des opérations
Exit Sub
PasdeParent:
MsgBox "je n'ai pas de parent"
' suite des opérations
End Sub


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"News Groups" a écrit dans le message de news:
41b5d470$0$6489$
Bonjour à tous

Voilà ma situation :
J'ai un formulaire MonFormA qui est utilisé
soit comme sous formulaire dans les formulaires principaux MonFormB et
MonFormC
soit comme formulaire principal normal.
Dans MonFormA j'ai une Sub qui appelle une autre routine Sub présente dans
les formulaires parents MonFormB et MonFormC :

* Sub présente dans MonFormB et MonFormC :
Public Sub MaSubToto ()
...
End Sub

* Sub présente dans MonFormA :
Public Sub MaSubFormA ()
...
Call Me.Parent.MaSubToto()
End Sub

Le problème est le suivant :
Dans le cas où MonFormA est utilisé comme sous formulaire de MonFormB ou
MonFormC
l'instruction "..Call Me.Parent.MaSubToto().." ne pose pas de soucis
Par contre si MonFormA est ouvert comme formulaire normal,
une erreur se produit sur "..Call Me.Parent.MaSubToto()..",
" Erreur : 2452 / La référence de la propriété Parent de l'expression
entrée
n'est pas correcte",
évidemment car il n'y pas de formulaire parent dans ce cas.

Comment faire afin de passer outre l'instruction "..Call
Me.Parent.MaSubToto().."
dans le cas où MonFormA n'est pas un sous formulaire ??

Je ne sais comment définir que MonFormA est ouvert en mode "sous
formulaire"
ou "formulaire" ??

Alors, bien que je n'aime pas trop ce type de méthode, j'ai essayé avec
une
gestion d'erreur :
On Error Resume Next
Call Me.Parent.MaSubToto()
Mais cela ne marche pas du moins avec cette syntaxe !

Si quelqu'un peut me venir en aide ...??

Merci encore,
Thierry.





Avatar
News Groups
Je viens d'essayé cette option et dans un premier temps
le gestionnaire d'erreurs n'était pas pris en compte et il y avait donc
arrêt sur l'erreur .
Mais en fait j'ai réalisé que l'option niveau VBE :
Outils/Options/Onglet Général / Récupération d'erreurs
était sur "Arrêt sur toutes les erreurs"
J'ai basculé en "Arrêt sur les erreurs non gérées"
et dans ce cas tout fonctionne !!

Cela a t'il des conséquences de rester sous cette option ?

Merci, encore,
Thierry.

"Raymond [mvp]" a écrit dans le message de
news: #
Bonsoir.

tu peux utiliser ceci qui n'est pas très dans la norme:

On Error GoTo PasdeParent
If Me.Parent.Name = "" Then
End If
MsgBox "j'ai un parent"
' suite des opérations
Exit Sub
PasdeParent:
MsgBox "je n'ai pas de parent"
' suite des opérations
End Sub


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"News Groups" a écrit dans le message de news:
41b5d470$0$6489$
Bonjour à tous

Voilà ma situation :
J'ai un formulaire MonFormA qui est utilisé
soit comme sous formulaire dans les formulaires principaux MonFormB et
MonFormC
soit comme formulaire principal normal.
Dans MonFormA j'ai une Sub qui appelle une autre routine Sub présente
dans


les formulaires parents MonFormB et MonFormC :

* Sub présente dans MonFormB et MonFormC :
Public Sub MaSubToto ()
...
End Sub

* Sub présente dans MonFormA :
Public Sub MaSubFormA ()
...
Call Me.Parent.MaSubToto()
End Sub

Le problème est le suivant :
Dans le cas où MonFormA est utilisé comme sous formulaire de MonFormB ou
MonFormC
l'instruction "..Call Me.Parent.MaSubToto().." ne pose pas de soucis
Par contre si MonFormA est ouvert comme formulaire normal,
une erreur se produit sur "..Call Me.Parent.MaSubToto()..",
" Erreur : 2452 / La référence de la propriété Parent de l'expression
entrée
n'est pas correcte",
évidemment car il n'y pas de formulaire parent dans ce cas.

Comment faire afin de passer outre l'instruction "..Call
Me.Parent.MaSubToto().."
dans le cas où MonFormA n'est pas un sous formulaire ??

Je ne sais comment définir que MonFormA est ouvert en mode "sous
formulaire"
ou "formulaire" ??

Alors, bien que je n'aime pas trop ce type de méthode, j'ai essayé avec
une
gestion d'erreur :
On Error Resume Next
Call Me.Parent.MaSubToto()
Mais cela ne marche pas du moins avec cette syntaxe !

Si quelqu'un peut me venir en aide ...??

Merci encore,
Thierry.









Avatar
Raymond [mvp]
non, mais il faut être un peu plus vigilant pour compléter le manque de
gestion d'erreur par des procédures personnelles.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"News Groups" a écrit dans le message de news:
41b6c087$0$9572$
Je viens d'essayé cette option et dans un premier temps
le gestionnaire d'erreurs n'était pas pris en compte et il y avait donc
arrêt sur l'erreur .
Mais en fait j'ai réalisé que l'option niveau VBE :
Outils/Options/Onglet Général / Récupération d'erreurs
était sur "Arrêt sur toutes les erreurs"
J'ai basculé en "Arrêt sur les erreurs non gérées"
et dans ce cas tout fonctionne !!

Cela a t'il des conséquences de rester sous cette option ?

Merci, encore,
Thierry.

"Raymond [mvp]" a écrit dans le message
de
news: #
Bonsoir.

tu peux utiliser ceci qui n'est pas très dans la norme:

On Error GoTo PasdeParent
If Me.Parent.Name = "" Then
End If
MsgBox "j'ai un parent"
' suite des opérations
Exit Sub
PasdeParent:
MsgBox "je n'ai pas de parent"
' suite des opérations
End Sub


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"News Groups" a écrit dans le message de news:
41b5d470$0$6489$
Bonjour à tous

Voilà ma situation :
J'ai un formulaire MonFormA qui est utilisé
soit comme sous formulaire dans les formulaires principaux MonFormB et
MonFormC
soit comme formulaire principal normal.
Dans MonFormA j'ai une Sub qui appelle une autre routine Sub présente
dans


les formulaires parents MonFormB et MonFormC :

* Sub présente dans MonFormB et MonFormC :
Public Sub MaSubToto ()
...
End Sub

* Sub présente dans MonFormA :
Public Sub MaSubFormA ()
...
Call Me.Parent.MaSubToto()
End Sub

Le problème est le suivant :
Dans le cas où MonFormA est utilisé comme sous formulaire de MonFormB
ou
MonFormC
l'instruction "..Call Me.Parent.MaSubToto().." ne pose pas de soucis
Par contre si MonFormA est ouvert comme formulaire normal,
une erreur se produit sur "..Call Me.Parent.MaSubToto()..",
" Erreur : 2452 / La référence de la propriété Parent de l'expression
entrée
n'est pas correcte",
évidemment car il n'y pas de formulaire parent dans ce cas.

Comment faire afin de passer outre l'instruction "..Call
Me.Parent.MaSubToto().."
dans le cas où MonFormA n'est pas un sous formulaire ??

Je ne sais comment définir que MonFormA est ouvert en mode "sous
formulaire"
ou "formulaire" ??

Alors, bien que je n'aime pas trop ce type de méthode, j'ai essayé avec
une
gestion d'erreur :
On Error Resume Next
Call Me.Parent.MaSubToto()
Mais cela ne marche pas du moins avec cette syntaxe !

Si quelqu'un peut me venir en aide ...??

Merci encore,
Thierry.













Avatar
News Groups
Merci pour tous,
Thierry.

"Raymond [mvp]" a écrit dans le message de
news:
non, mais il faut être un peu plus vigilant pour compléter le manque de
gestion d'erreur par des procédures personnelles.

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"News Groups" a écrit dans le message de news:
41b6c087$0$9572$
Je viens d'essayé cette option et dans un premier temps
le gestionnaire d'erreurs n'était pas pris en compte et il y avait donc
arrêt sur l'erreur .
Mais en fait j'ai réalisé que l'option niveau VBE :
Outils/Options/Onglet Général / Récupération d'erreurs
était sur "Arrêt sur toutes les erreurs"
J'ai basculé en "Arrêt sur les erreurs non gérées"
et dans ce cas tout fonctionne !!

Cela a t'il des conséquences de rester sous cette option ?

Merci, encore,
Thierry.

"Raymond [mvp]" a écrit dans le
message


de
news: #
Bonsoir.

tu peux utiliser ceci qui n'est pas très dans la norme:

On Error GoTo PasdeParent
If Me.Parent.Name = "" Then
End If
MsgBox "j'ai un parent"
' suite des opérations
Exit Sub
PasdeParent:
MsgBox "je n'ai pas de parent"
' suite des opérations
End Sub


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"News Groups" a écrit dans le message de news:
41b5d470$0$6489$
Bonjour à tous

Voilà ma situation :
J'ai un formulaire MonFormA qui est utilisé
soit comme sous formulaire dans les formulaires principaux MonFormB
et




MonFormC
soit comme formulaire principal normal.
Dans MonFormA j'ai une Sub qui appelle une autre routine Sub présente
dans


les formulaires parents MonFormB et MonFormC :

* Sub présente dans MonFormB et MonFormC :
Public Sub MaSubToto ()
...
End Sub

* Sub présente dans MonFormA :
Public Sub MaSubFormA ()
...
Call Me.Parent.MaSubToto()
End Sub

Le problème est le suivant :
Dans le cas où MonFormA est utilisé comme sous formulaire de MonFormB
ou
MonFormC
l'instruction "..Call Me.Parent.MaSubToto().." ne pose pas de soucis
Par contre si MonFormA est ouvert comme formulaire normal,
une erreur se produit sur "..Call Me.Parent.MaSubToto()..",
" Erreur : 2452 / La référence de la propriété Parent de l'expression
entrée
n'est pas correcte",
évidemment car il n'y pas de formulaire parent dans ce cas.

Comment faire afin de passer outre l'instruction "..Call
Me.Parent.MaSubToto().."
dans le cas où MonFormA n'est pas un sous formulaire ??

Je ne sais comment définir que MonFormA est ouvert en mode "sous
formulaire"
ou "formulaire" ??

Alors, bien que je n'aime pas trop ce type de méthode, j'ai essayé
avec




une
gestion d'erreur :
On Error Resume Next
Call Me.Parent.MaSubToto()
Mais cela ne marche pas du moins avec cette syntaxe !

Si quelqu'un peut me venir en aide ...??

Merci encore,
Thierry.