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

Onglets etc.

2 réponses
Avatar
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

2 réponses

Avatar
Goupil
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" <~ a écrit dans le message de news:

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




Avatar
ejc
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" a écrit dans le message de news:
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" <~ a écrit dans le message de news:

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