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

Référence à un sous-formulaire dans un contrôle onglet

3 réponses
Avatar
Mrs Pomemboo
Bien le bonjour mes cher(es)....

Une tite pour vous ce matin... En Access 97 toujours... et je commence à
en avoir mare !

- un formulaire principal frmGestionDonnee
- contenant un contrôle onglet ctlOngletGestion de X pages
- chaque page contient un sous-formulaire
- chaque page contient une liste modifiable permettant de recherche
l'enregistrement X
- chacune de mes pages est nommée du même nom que le sous-formulaire
qu'elle contient, et le nom du contrôle à un "s" suivi du nom du formulaire

Ce que je tente de faire, c'est à partir de la fonction ci-dessous,
ouvrir mon formulaire, me positionner sur la page voulue, mettre le focus
sur
le sous-formulaire en question, jusque là... ma fonction le fait, ça roule.
Maintenant,
je voudrais soit aller sur ma liste déroulante, soit sur un nouvel
enregistrement du
sous-formulaire pour en ajouter un. J'ai essayé
GotoRecord acDataForm, "MonForm", acNew
mais il ne voit pas mon formulaire.

Là, je suis en désespoir de cause !

*****************
Public Sub AjouterDonnee(frmFormulaireAppelant As Form,
strNomFormulaireAppelle As String, _
strListeAssociee As String)

Dim frmGestionDonnees As Form
Dim ctlOnglet As Control
Dim ctlPage As Page
Dim ctlsFrm As Control

frmFormulaireAppelant.Visible = False

DoCmd.OpenForm "frmGestionDonnee", acNormal, , , , ,
OpenArgs:=frmFormulaireAppelant.FormName

Set frmGestionDonnees = Application.Forms("frmGestionDonnee")
Set ctlOnglet = frmGestionDonnees.Controls("ctlOngletGestion")
Set ctlPage = ctlOnglet.Pages(strNomFormulaireAppelle)
Set ctlsFrm = frmGestionDonnees.Controls("s" & strNomFormulaireAppelle)

ctlPage.SetFocus
ctlsFrm.SetFocus

'maintenant, j'aimerais ici me positionner, soit sur la liste modifiable du
sous-formulaire
'soit sur un nouvel un nouvel enregistrement

End Sub
************

Merci bien et bon début de journée !
Mrs Pomemboo

3 réponses

Avatar
Mrs Pomemboo
Oui c'est très clair pour le référence du contrôle Onglet et les contrôles
qu'ils contiennent. Tout fonctionne bien.
Mais comment maintenant contrôler le nouvel enregistrement ajouté. Sur quel
événement je mets mon code pour référencer le no du record ajouté pour usage
ultérieur. J'ai essayé surSortie du contrôle sous-formulaire(non),
AfterInsert(appelé un peu trop tard) dans mon sous-formulaire, mais je ne
réussis pas à retrouver mon no d'enregistrement ajouté qu'en utilisant la
méthode change d'un contrôle situé dans mon sous-formulaire, pas très
efficace ! Quel événement est le plus approprié dans mon cas. Je veux
pouvoir sur click d'un bouton sauvegarder de mon formulaire principal,
prendre la valeur du controle X de mon

Merci encore !
Mrs Pomemboo

Bonjour.

Juste une idée.
En partant du principe , d'une part, qu'on peut atteindre une page
directement sans référencer l'onglet et que si on met le focus sur une
page

et que le sous-formulaire est le champs N°1 dans l'ordre des tabulations,
on

peut se positionner directement sur un nouvel enregistrement dans le
sous-formulaire et que d'autre part on peut mettre le focus sur un
contrôle

placé dans une page en référençant directement ce contrôle, on peut se
positionner sur le Newrecord du sous-formulaire par:

Me.Sform1.SetFocus 'sform1=controle sous-formulaire
DoCmd.GoToRecord , , acNewRec

ceci est le cas le plus simple.
Si on veut sélectionner un contrôle parmi d'autres il suffit de dire:

If Mavaleur = "azerty" Then
Me.Sform1.SetFocus
DoCmd.GoToRecord , , acNewRec
Else
Me.Modifiable84.SetFocus 'combobox placé sur l'onglet
End If

Ce n'est peut-être pas très clair ?

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Mrs Pomemboo" a écrit dans le message de
news:eK2%
Bien le bonjour mes cher(es)....

Une tite pour vous ce matin... En Access 97 toujours... et je commence à
en avoir mare !

- un formulaire principal frmGestionDonnee
- contenant un contrôle onglet ctlOngletGestion de X pages
- chaque page contient un sous-formulaire
- chaque page contient une liste modifiable permettant de recherche
l'enregistrement X
- chacune de mes pages est nommée du même nom que le sous-formulaire
qu'elle contient, et le nom du contrôle à un "s" suivi du nom du
formulaire


Ce que je tente de faire, c'est à partir de la fonction ci-dessous,
ouvrir mon formulaire, me positionner sur la page voulue, mettre le
focus


sur
le sous-formulaire en question, jusque là... ma fonction le fait, ça
roule.

Maintenant,
je voudrais soit aller sur ma liste déroulante, soit sur un nouvel
enregistrement du
sous-formulaire pour en ajouter un. J'ai essayé
GotoRecord acDataForm, "MonForm", acNew
mais il ne voit pas mon formulaire.

Là, je suis en désespoir de cause !

*****************
Public Sub AjouterDonnee(frmFormulaireAppelant As Form,
strNomFormulaireAppelle As String, _
strListeAssociee As String)

Dim frmGestionDonnees As Form
Dim ctlOnglet As Control
Dim ctlPage As Page
Dim ctlsFrm As Control

frmFormulaireAppelant.Visible = False

DoCmd.OpenForm "frmGestionDonnee", acNormal, , , , ,
OpenArgs:=frmFormulaireAppelant.FormName

Set frmGestionDonnees = Application.Forms("frmGestionDonnee")
Set ctlOnglet = frmGestionDonnees.Controls("ctlOngletGestion")
Set ctlPage = ctlOnglet.Pages(strNomFormulaireAppelle)
Set ctlsFrm = frmGestionDonnees.Controls("s" & strNomFormulaireAppelle)

ctlPage.SetFocus
ctlsFrm.SetFocus

'maintenant, j'aimerais ici me positionner, soit sur la liste modifiable
du

sous-formulaire
'soit sur un nouvel un nouvel enregistrement

End Sub
************

Merci bien et bon début de journée !
Mrs Pomemboo






Avatar
Raymond
RE.

Le numero du record (donc numéroauto) est créé dès que le premier champ de
l'enregistrement est validé. A partir de la sortie du premier champ du
sous-formulaire, le numéro est disponible. Donc disponible sur les événement
beforeupdate et afterupdate obligatoirement.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Mrs Pomemboo" a écrit dans le message de
news:
Oui c'est très clair pour le référence du contrôle Onglet et les contrôles
qu'ils contiennent. Tout fonctionne bien.
Mais comment maintenant contrôler le nouvel enregistrement ajouté. Sur
quel

événement je mets mon code pour référencer le no du record ajouté pour
usage

ultérieur. J'ai essayé surSortie du contrôle sous-formulaire(non),
AfterInsert(appelé un peu trop tard) dans mon sous-formulaire, mais je ne
réussis pas à retrouver mon no d'enregistrement ajouté qu'en utilisant la
méthode change d'un contrôle situé dans mon sous-formulaire, pas très
efficace ! Quel événement est le plus approprié dans mon cas. Je veux
pouvoir sur click d'un bouton sauvegarder de mon formulaire principal,
prendre la valeur du controle X de mon

Merci encore !
Mrs Pomemboo

Bonjour.

Juste une idée.
En partant du principe , d'une part, qu'on peut atteindre une page
directement sans référencer l'onglet et que si on met le focus sur une
page

et que le sous-formulaire est le champs N°1 dans l'ordre des
tabulations,


on
peut se positionner directement sur un nouvel enregistrement dans le
sous-formulaire et que d'autre part on peut mettre le focus sur un
contrôle

placé dans une page en référençant directement ce contrôle, on peut se
positionner sur le Newrecord du sous-formulaire par:

Me.Sform1.SetFocus 'sform1=controle sous-formulaire
DoCmd.GoToRecord , , acNewRec

ceci est le cas le plus simple.
Si on veut sélectionner un contrôle parmi d'autres il suffit de dire:

If Mavaleur = "azerty" Then
Me.Sform1.SetFocus
DoCmd.GoToRecord , , acNewRec
Else
Me.Modifiable84.SetFocus 'combobox placé sur l'onglet
End If

Ce n'est peut-être pas très clair ?

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Mrs Pomemboo" a écrit dans le message de
news:eK2%
Bien le bonjour mes cher(es)....

Une tite pour vous ce matin... En Access 97 toujours... et je commence
à



en avoir mare !

- un formulaire principal frmGestionDonnee
- contenant un contrôle onglet ctlOngletGestion de X pages
- chaque page contient un sous-formulaire
- chaque page contient une liste modifiable permettant de recherche
l'enregistrement X
- chacune de mes pages est nommée du même nom que le sous-formulaire
qu'elle contient, et le nom du contrôle à un "s" suivi du nom du
formulaire


Ce que je tente de faire, c'est à partir de la fonction ci-dessous,
ouvrir mon formulaire, me positionner sur la page voulue, mettre le
focus


sur
le sous-formulaire en question, jusque là... ma fonction le fait, ça
roule.

Maintenant,
je voudrais soit aller sur ma liste déroulante, soit sur un nouvel
enregistrement du
sous-formulaire pour en ajouter un. J'ai essayé
GotoRecord acDataForm, "MonForm", acNew
mais il ne voit pas mon formulaire.

Là, je suis en désespoir de cause !

*****************
Public Sub AjouterDonnee(frmFormulaireAppelant As Form,
strNomFormulaireAppelle As String, _
strListeAssociee As String)

Dim frmGestionDonnees As Form
Dim ctlOnglet As Control
Dim ctlPage As Page
Dim ctlsFrm As Control

frmFormulaireAppelant.Visible = False

DoCmd.OpenForm "frmGestionDonnee", acNormal, , , , ,
OpenArgs:=frmFormulaireAppelant.FormName

Set frmGestionDonnees = Application.Forms("frmGestionDonnee")
Set ctlOnglet = frmGestionDonnees.Controls("ctlOngletGestion")
Set ctlPage = ctlOnglet.Pages(strNomFormulaireAppelle)
Set ctlsFrm = frmGestionDonnees.Controls("s" &
strNomFormulaireAppelle)




ctlPage.SetFocus
ctlsFrm.SetFocus

'maintenant, j'aimerais ici me positionner, soit sur la liste
modifiable



du
sous-formulaire
'soit sur un nouvel un nouvel enregistrement

End Sub
************

Merci bien et bon début de journée !
Mrs Pomemboo









Avatar
Mrs Pomemboo
Merci bien Raymond... ça fonctionne à merveille ! Bonne journée encore et à
plus tard peut-être ;-)

Mrs Pomemboo

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

RE.

Le numero du record (donc numéroauto) est créé dès que le premier champ de
l'enregistrement est validé. A partir de la sortie du premier champ du
sous-formulaire, le numéro est disponible. Donc disponible sur les
événement

beforeupdate et afterupdate obligatoirement.
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Mrs Pomemboo" a écrit dans le message de
news:
Oui c'est très clair pour le référence du contrôle Onglet et les
contrôles


qu'ils contiennent. Tout fonctionne bien.
Mais comment maintenant contrôler le nouvel enregistrement ajouté. Sur
quel

événement je mets mon code pour référencer le no du record ajouté pour
usage

ultérieur. J'ai essayé surSortie du contrôle sous-formulaire(non),
AfterInsert(appelé un peu trop tard) dans mon sous-formulaire, mais je
ne


réussis pas à retrouver mon no d'enregistrement ajouté qu'en utilisant
la


méthode change d'un contrôle situé dans mon sous-formulaire, pas très
efficace ! Quel événement est le plus approprié dans mon cas. Je veux
pouvoir sur click d'un bouton sauvegarder de mon formulaire principal,
prendre la valeur du controle X de mon

Merci encore !
Mrs Pomemboo

Bonjour.

Juste une idée.
En partant du principe , d'une part, qu'on peut atteindre une page
directement sans référencer l'onglet et que si on met le focus sur une
page

et que le sous-formulaire est le champs N°1 dans l'ordre des
tabulations,


on
peut se positionner directement sur un nouvel enregistrement dans le
sous-formulaire et que d'autre part on peut mettre le focus sur un
contrôle

placé dans une page en référençant directement ce contrôle, on peut se
positionner sur le Newrecord du sous-formulaire par:

Me.Sform1.SetFocus 'sform1=controle sous-formulaire
DoCmd.GoToRecord , , acNewRec

ceci est le cas le plus simple.
Si on veut sélectionner un contrôle parmi d'autres il suffit de dire:

If Mavaleur = "azerty" Then
Me.Sform1.SetFocus
DoCmd.GoToRecord , , acNewRec
Else
Me.Modifiable84.SetFocus 'combobox placé sur l'onglet
End If

Ce n'est peut-être pas très clair ?

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Mrs Pomemboo" a écrit dans le message de
news:eK2%
Bien le bonjour mes cher(es)....

Une tite pour vous ce matin... En Access 97 toujours... et je
commence




à
en avoir mare !

- un formulaire principal frmGestionDonnee
- contenant un contrôle onglet ctlOngletGestion de X pages
- chaque page contient un sous-formulaire
- chaque page contient une liste modifiable permettant de recherche
l'enregistrement X
- chacune de mes pages est nommée du même nom que le sous-formulaire
qu'elle contient, et le nom du contrôle à un "s" suivi du nom du
formulaire


Ce que je tente de faire, c'est à partir de la fonction ci-dessous,
ouvrir mon formulaire, me positionner sur la page voulue, mettre le
focus


sur
le sous-formulaire en question, jusque là... ma fonction le fait, ça
roule.

Maintenant,
je voudrais soit aller sur ma liste déroulante, soit sur un nouvel
enregistrement du
sous-formulaire pour en ajouter un. J'ai essayé
GotoRecord acDataForm, "MonForm", acNew
mais il ne voit pas mon formulaire.

Là, je suis en désespoir de cause !

*****************
Public Sub AjouterDonnee(frmFormulaireAppelant As Form,
strNomFormulaireAppelle As String, _
strListeAssociee As String)

Dim frmGestionDonnees As Form
Dim ctlOnglet As Control
Dim ctlPage As Page
Dim ctlsFrm As Control

frmFormulaireAppelant.Visible = False

DoCmd.OpenForm "frmGestionDonnee", acNormal, , , , ,
OpenArgs:=frmFormulaireAppelant.FormName

Set frmGestionDonnees = Application.Forms("frmGestionDonnee")
Set ctlOnglet = frmGestionDonnees.Controls("ctlOngletGestion")
Set ctlPage = ctlOnglet.Pages(strNomFormulaireAppelle)
Set ctlsFrm = frmGestionDonnees.Controls("s" &
strNomFormulaireAppelle)




ctlPage.SetFocus
ctlsFrm.SetFocus

'maintenant, j'aimerais ici me positionner, soit sur la liste
modifiable



du
sous-formulaire
'soit sur un nouvel un nouvel enregistrement

End Sub
************

Merci bien et bon début de journée !
Mrs Pomemboo