Onglets etc.

Le
ejc
Bonjour à tous,
J'ai un form (menu principal) qui contient plusieurs onglets
Dans chaque onglet, il y a (ou pas) un formulaire.
Ce que je souhaite (ou souhaiterai) faire : lorsque je clique sur un onglet,
le formulaire que je viens de quitter se positionne sur un nouvel
enregistrement.
J'ai écrit :

Private Sub CtlOnglets_Change()
Dim NuméroOnglet As Byte, NomFormulaire As String, frm As Control
'Stop
'Est-ce que l'onglet précédent contenait un formulaire ?
If Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls.Count = 1 Then
NomFormulaire = "Forms![frmMenuPrincipal]![" &
Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls(0).Name & "]"
'NomFormulaire =
Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls(0).Name
End If
Stop
If NomFormulaire <> "" Then
On Error Resume Next
DoCmd.GoToRecord acDataForm, NomFormulaire, acNewRec
On Error GoTo 0
Set frm = Forms![frmMenuPrincipal].Form(NomFormulaire)
'Instruction pour afficher un nouvel enregistrement
'frm.Form.btNouveau_Click
Debug.Print frm.Name
End If
SvgOngletPrécédent = Me.CtlOnglets.Value
'Debug.Print NuméroOnglet, Me.CtlOnglets.Pages(NuméroOnglet).Caption,
Me.CtlOnglets.Pages(NuméroOnglet).Controls.Count, NomFormulaire
'Debug.Print frm.Name
End Sub
--
Note : SvgOngletPrécédent est une variable "public"
Il y a du code en trop (mais c'est pour tester)
L'erreur : DoCmd.GoToRecord acDataForm, NomFormulaire, acNewRec me renvoie
toujours "Le form. machin n'est pas ouvert"
Il doit y avoir d'autres façons de traiter le pb. (je n'ai pas essayé pour
l'instant)
Merci d'avance si vous avez des idées
Jero
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Goupil
Le #20259091
Bonjour,

La création d'un nouvel enregistrement pourrait se faire par la fonction
DoCmd.GoToRecord , , acNewRec
dans la propriété <Sur désactivé>
Ca devrait marcher...

Goup'

"ejc"
Bonjour à tous,
J'ai un form (menu principal) qui contient plusieurs onglets...
Dans chaque onglet, il y a (ou pas) un formulaire.
Ce que je souhaite (ou souhaiterai) faire : lorsque je clique sur un
onglet, le formulaire que je viens de quitter se positionne sur un nouvel
enregistrement.
J'ai écrit :
---------
Private Sub CtlOnglets_Change()
Dim NuméroOnglet As Byte, NomFormulaire As String, frm As Control
'Stop
'Est-ce que l'onglet précédent contenait un formulaire ?
If Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls.Count = 1 Then
NomFormulaire = "Forms![frmMenuPrincipal]![" &
Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls(0).Name & "]"
'NomFormulaire =
Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls(0).Name
End If
Stop
If NomFormulaire <> "" Then
On Error Resume Next
DoCmd.GoToRecord acDataForm, NomFormulaire, acNewRec
On Error GoTo 0
Set frm = Forms![frmMenuPrincipal].Form(NomFormulaire)
'Instruction pour afficher un nouvel enregistrement
'frm.Form.btNouveau_Click
Debug.Print frm.Name
End If
SvgOngletPrécédent = Me.CtlOnglets.Value
'Debug.Print NuméroOnglet, Me.CtlOnglets.Pages(NuméroOnglet).Caption,
Me.CtlOnglets.Pages(NuméroOnglet).Controls.Count, NomFormulaire
'Debug.Print frm.Name
End Sub
--------
Note : SvgOngletPrécédent est une variable "public"
Il y a du code en trop (mais c'est pour tester)
L'erreur : DoCmd.GoToRecord acDataForm, NomFormulaire, acNewRec me renvoie
toujours "Le form. machin n'est pas ouvert"
Il doit y avoir d'autres façons de traiter le pb. (je n'ai pas essayé pour
l'instant)
Merci d'avance si vous avez des idées...
Jero




ejc
Le #20266011
Salut,
DoCmd.GoToRecord , , acNewRec : oui, je sais
Ca devrait marcher... : oui, sauf que ça doit s'appliquer au formulaire
précédent (et c'est là que j'ai un pb.)


A+

"Goupil" 4ac31c3a$0$991$
Bonjour,

La création d'un nouvel enregistrement pourrait se faire par la fonction
DoCmd.GoToRecord , , acNewRec
dans la propriété <Sur désactivé>
Ca devrait marcher...

Goup'

"ejc"
Bonjour à tous,
J'ai un form (menu principal) qui contient plusieurs onglets...
Dans chaque onglet, il y a (ou pas) un formulaire.
Ce que je souhaite (ou souhaiterai) faire : lorsque je clique sur un
onglet, le formulaire que je viens de quitter se positionne sur un nouvel
enregistrement.
J'ai écrit :
---------
Private Sub CtlOnglets_Change()
Dim NuméroOnglet As Byte, NomFormulaire As String, frm As Control
'Stop
'Est-ce que l'onglet précédent contenait un formulaire ?
If Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls.Count = 1 Then
NomFormulaire = "Forms![frmMenuPrincipal]![" &
Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls(0).Name & "]"
'NomFormulaire =
Me.CtlOnglets.Pages(SvgOngletPrécédent).Controls(0).Name
End If
Stop
If NomFormulaire <> "" Then
On Error Resume Next
DoCmd.GoToRecord acDataForm, NomFormulaire, acNewRec
On Error GoTo 0
Set frm = Forms![frmMenuPrincipal].Form(NomFormulaire)
'Instruction pour afficher un nouvel enregistrement
'frm.Form.btNouveau_Click
Debug.Print frm.Name
End If
SvgOngletPrécédent = Me.CtlOnglets.Value
'Debug.Print NuméroOnglet, Me.CtlOnglets.Pages(NuméroOnglet).Caption,
Me.CtlOnglets.Pages(NuméroOnglet).Controls.Count, NomFormulaire
'Debug.Print frm.Name
End Sub
--------
Note : SvgOngletPrécédent est une variable "public"
Il y a du code en trop (mais c'est pour tester)
L'erreur : DoCmd.GoToRecord acDataForm, NomFormulaire, acNewRec me
renvoie toujours "Le form. machin n'est pas ouvert"
Il doit y avoir d'autres façons de traiter le pb. (je n'ai pas essayé
pour l'instant)
Merci d'avance si vous avez des idées...
Jero








Publicité
Poster une réponse
Anonyme