Bonjour
Est il possible de déplacer par VBA un contrôle de la section détail d'un
formulaire à l'entête de ce même formulaire et comment.
Merci
Bonjour
Est il possible de déplacer par VBA un contrôle de la section détail d'un
formulaire à l'entête de ce même formulaire et comment.
Merci
Bonjour
Est il possible de déplacer par VBA un contrôle de la section détail d'un
formulaire à l'entête de ce même formulaire et comment.
Merci
Bjr,
Il y a moyen de créer des formulaires en VBA et donc de les modifier. J'ai
un ancien projet (qui fonctionne toujours) qui fait cela. J'y ajoute même du
code VBA. Mais le côté dynamique à ses limites, je ne me souviens trop plus
pourquoi, mais (en mode runtime,) je suis obligé de redémarrer
l'application.
Dim db_monito As DAO.Database
Dim Mdl As Module
Dim Lng As Long
Dim Code$
Dim Ctl_Label As Control, Ctl_Text As Control
Dim Gauche As Integer, Haut As Integer
Dim Largeur As Integer, Hauteur As Integer
...
On Error Resume Next
DoCmd.DeleteObject acForm, "Frm_Formulaire"
On Error GoTo 0
DoCmd.CopyObject , "Frm_Modele", acForm, "Frm_Formulaire"
DoCmd.OpenForm "Frm_Formulaire", acDesign
Set Mdl = Forms![Frm_Formulaire].Module
...
Set Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail, , ,
Gauche, Haut, Largeur, Hauteur)
With Ctl_Text
...
End With
'
' Coding ...
'
Lng = Mdl.CreateEventProc("BeforeUpdate", Ctl_Text.Name)
Code$ = "" _
& vbCrLf& " If isnull("& Ctl_Text.Name& ".Value) Then " _
& vbCrLf& " exit sub" _
& vbCrLf& " end If" _
& vbCrLf& " If Not isnumeric("& Ctl_Text.Name& ".Value)
Then " _
& vbCrLf& " Cancel = True" _
& vbCrLf& " Me!"& Ctl_Text.Name& ".Undo" _
& vbCrLf& " End If"
Mdl.InsertLines Lng + 1, Code$
Il est donc impossible de créer un formulaire "à la volée" suivant les
circonstances rencontrées.
Il faut donc prévoir des contrôles en suffisance et utiliser les propriétés
.top, .visible& Cie en mode exécution.
Cdt, Blaise
"Papyto94" a écrit dans le message de news:
4be01fd7$0$10158$Bonjour
Est il possible de déplacer par VBA un contrôle de la section détail d'un
formulaire à l'entête de ce même formulaire et comment.
Merci
Bjr,
Il y a moyen de créer des formulaires en VBA et donc de les modifier. J'ai
un ancien projet (qui fonctionne toujours) qui fait cela. J'y ajoute même du
code VBA. Mais le côté dynamique à ses limites, je ne me souviens trop plus
pourquoi, mais (en mode runtime,) je suis obligé de redémarrer
l'application.
Dim db_monito As DAO.Database
Dim Mdl As Module
Dim Lng As Long
Dim Code$
Dim Ctl_Label As Control, Ctl_Text As Control
Dim Gauche As Integer, Haut As Integer
Dim Largeur As Integer, Hauteur As Integer
...
On Error Resume Next
DoCmd.DeleteObject acForm, "Frm_Formulaire"
On Error GoTo 0
DoCmd.CopyObject , "Frm_Modele", acForm, "Frm_Formulaire"
DoCmd.OpenForm "Frm_Formulaire", acDesign
Set Mdl = Forms![Frm_Formulaire].Module
...
Set Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail, , ,
Gauche, Haut, Largeur, Hauteur)
With Ctl_Text
...
End With
'
' Coding ...
'
Lng = Mdl.CreateEventProc("BeforeUpdate", Ctl_Text.Name)
Code$ = "" _
& vbCrLf& " If isnull("& Ctl_Text.Name& ".Value) Then " _
& vbCrLf& " exit sub" _
& vbCrLf& " end If" _
& vbCrLf& " If Not isnumeric("& Ctl_Text.Name& ".Value)
Then " _
& vbCrLf& " Cancel = True" _
& vbCrLf& " Me!"& Ctl_Text.Name& ".Undo" _
& vbCrLf& " End If"
Mdl.InsertLines Lng + 1, Code$
Il est donc impossible de créer un formulaire "à la volée" suivant les
circonstances rencontrées.
Il faut donc prévoir des contrôles en suffisance et utiliser les propriétés
.top, .visible& Cie en mode exécution.
Cdt, Blaise
"Papyto94"<papito1pasdespam@free.fr> a écrit dans le message de news:
4be01fd7$0$10158$426a34cc@news.free.fr...
Bonjour
Est il possible de déplacer par VBA un contrôle de la section détail d'un
formulaire à l'entête de ce même formulaire et comment.
Merci
Bjr,
Il y a moyen de créer des formulaires en VBA et donc de les modifier. J'ai
un ancien projet (qui fonctionne toujours) qui fait cela. J'y ajoute même du
code VBA. Mais le côté dynamique à ses limites, je ne me souviens trop plus
pourquoi, mais (en mode runtime,) je suis obligé de redémarrer
l'application.
Dim db_monito As DAO.Database
Dim Mdl As Module
Dim Lng As Long
Dim Code$
Dim Ctl_Label As Control, Ctl_Text As Control
Dim Gauche As Integer, Haut As Integer
Dim Largeur As Integer, Hauteur As Integer
...
On Error Resume Next
DoCmd.DeleteObject acForm, "Frm_Formulaire"
On Error GoTo 0
DoCmd.CopyObject , "Frm_Modele", acForm, "Frm_Formulaire"
DoCmd.OpenForm "Frm_Formulaire", acDesign
Set Mdl = Forms![Frm_Formulaire].Module
...
Set Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail, , ,
Gauche, Haut, Largeur, Hauteur)
With Ctl_Text
...
End With
'
' Coding ...
'
Lng = Mdl.CreateEventProc("BeforeUpdate", Ctl_Text.Name)
Code$ = "" _
& vbCrLf& " If isnull("& Ctl_Text.Name& ".Value) Then " _
& vbCrLf& " exit sub" _
& vbCrLf& " end If" _
& vbCrLf& " If Not isnumeric("& Ctl_Text.Name& ".Value)
Then " _
& vbCrLf& " Cancel = True" _
& vbCrLf& " Me!"& Ctl_Text.Name& ".Undo" _
& vbCrLf& " End If"
Mdl.InsertLines Lng + 1, Code$
Il est donc impossible de créer un formulaire "à la volée" suivant les
circonstances rencontrées.
Il faut donc prévoir des contrôles en suffisance et utiliser les propriétés
.top, .visible& Cie en mode exécution.
Cdt, Blaise
"Papyto94" a écrit dans le message de news:
4be01fd7$0$10158$Bonjour
Est il possible de déplacer par VBA un contrôle de la section détail d'un
formulaire à l'entête de ce même formulaire et comment.
Merci
La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section dé tailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,, ,
Gauche, Haut, Largeur, Hauteur)
La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section dé tail
Set Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,, ,
Gauche, Haut, Largeur, Hauteur)
La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section dé tailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,, ,
Gauche, Haut, Largeur, Hauteur)
Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControlGauche, Haut, Largeur, Hauteur)
Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :
La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détail
Set Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControl
Gauche, Haut, Largeur, Hauteur)
Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControlGauche, Haut, Largeur, Hauteur)
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Salut,
Peut-être plus simple :
Tu crées 2 contrôles identiques un dans la section détail, l'autre dans
l'entête (avec évidemment 2 noms différents)
Ex : tNomMachinDétail et tNomMachinEnTête avec tNomMachinDétail visible et
tNomMachinEnTête non visible
Sur un événement quelconque du formulaire tu fais :
Me.tNomMachinDétail.Visible=Not Me.tNomMachinDétail.Visible
Me.tNomMachinEnTête.Visible=Not Me.tNomMachinEnTête.Visible
A+
"Gloops" a écrit dans le message de news:
Le 04/05/2010 21:00, Papyto94 a écrit :Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Ah effectivement si tu veux changer de section ça risque d'être beaucoup
plus simple d'en créer un nouveau, de lui affecter toutes les propriétés
de l'ancien, et puis l'ancien ensuite si on n'en veut plus on le
supprime (à moins qu'on préfère le rendre invisible).
Bien garder une copie de la base. Un contrôle créé dynamiquement ne se
retrouve pas en mode création. Quand à savoir si un contrôle supprimé
par code se retrouve en mode création, il faut vérifier.
Salut,
Peut-être plus simple :
Tu crées 2 contrôles identiques un dans la section détail, l'autre dans
l'entête (avec évidemment 2 noms différents)
Ex : tNomMachinDétail et tNomMachinEnTête avec tNomMachinDétail visible et
tNomMachinEnTête non visible
Sur un événement quelconque du formulaire tu fais :
Me.tNomMachinDétail.Visible=Not Me.tNomMachinDétail.Visible
Me.tNomMachinEnTête.Visible=Not Me.tNomMachinEnTête.Visible
A+
"Gloops"<gloops@invalid.zailes.org> a écrit dans le message de news:
OorWqd96KHA.3504@TK2MSFTNGP05.phx.gbl...
Le 04/05/2010 21:00, Papyto94 a écrit :
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Ah effectivement si tu veux changer de section ça risque d'être beaucoup
plus simple d'en créer un nouveau, de lui affecter toutes les propriétés
de l'ancien, et puis l'ancien ensuite si on n'en veut plus on le
supprime (à moins qu'on préfère le rendre invisible).
Bien garder une copie de la base. Un contrôle créé dynamiquement ne se
retrouve pas en mode création. Quand à savoir si un contrôle supprimé
par code se retrouve en mode création, il faut vérifier.
Salut,
Peut-être plus simple :
Tu crées 2 contrôles identiques un dans la section détail, l'autre dans
l'entête (avec évidemment 2 noms différents)
Ex : tNomMachinDétail et tNomMachinEnTête avec tNomMachinDétail visible et
tNomMachinEnTête non visible
Sur un événement quelconque du formulaire tu fais :
Me.tNomMachinDétail.Visible=Not Me.tNomMachinDétail.Visible
Me.tNomMachinEnTête.Visible=Not Me.tNomMachinEnTête.Visible
A+
"Gloops" a écrit dans le message de news:
Le 04/05/2010 21:00, Papyto94 a écrit :Merci
Mais je pense que CreateControl va me créer un contrôle mais pas
déplacer le mien que je devrai dans ce cas rendre invisible.
Ah effectivement si tu veux changer de section ça risque d'être beaucoup
plus simple d'en créer un nouveau, de lui affecter toutes les propriétés
de l'ancien, et puis l'ancien ensuite si on n'en veut plus on le
supprime (à moins qu'on préfère le rendre invisible).
Bien garder une copie de la base. Un contrôle créé dynamiquement ne se
retrouve pas en mode création. Quand à savoir si un contrôle supprimé
par code se retrouve en mode création, il faut vérifier.
Le 04/05/2010 20:36, Gloops a écrit :Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControlGauche, Haut, Largeur, Hauteur)
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas déplacer
le mien que je devrai dans ce cas rendre invisible.
Le 04/05/2010 20:36, Gloops a écrit :
Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :
La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détail
Set Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControl
Gauche, Haut, Largeur, Hauteur)
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas déplacer
le mien que je devrai dans ce cas rendre invisible.
Le 04/05/2010 20:36, Gloops a écrit :Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControlGauche, Haut, Largeur, Hauteur)
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas déplacer
le mien que je devrai dans ce cas rendre invisible.
Comme tu sais que tu vas (éventuellement ?) devoir passer d'un containeur à
un autre, tu crées un contrôle dans les deux et tu joues sur leurs
propriétés. Je disais dans mon message originel : «Il faut donc prévoir des
contrôles en suffisance et utiliser les propriétés ...» Soit copier les
propriétés nécéssaires de l'un vers l'autre.
Bon amusement !
"Papyto94" a écrit dans le message de news:
4be06ee5$0$18006$Le 04/05/2010 20:36, Gloops a écrit :Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControlGauche, Haut, Largeur, Hauteur)
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas déplacer
le mien que je devrai dans ce cas rendre invisible.
Comme tu sais que tu vas (éventuellement ?) devoir passer d'un containeur à
un autre, tu crées un contrôle dans les deux et tu joues sur leurs
propriétés. Je disais dans mon message originel : «Il faut donc prévoir des
contrôles en suffisance et utiliser les propriétés ...» Soit copier les
propriétés nécéssaires de l'un vers l'autre.
Bon amusement !
"Papyto94"<papito1pasdespam@free.fr> a écrit dans le message de news:
4be06ee5$0$18006$426a74cc@news.free.fr...
Le 04/05/2010 20:36, Gloops a écrit :
Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :
La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détail
Set Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControl
Gauche, Haut, Largeur, Hauteur)
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas déplacer
le mien que je devrai dans ce cas rendre invisible.
Comme tu sais que tu vas (éventuellement ?) devoir passer d'un containeur à
un autre, tu crées un contrôle dans les deux et tu joues sur leurs
propriétés. Je disais dans mon message originel : «Il faut donc prévoir des
contrôles en suffisance et utiliser les propriétés ...» Soit copier les
propriétés nécéssaires de l'un vers l'autre.
Bon amusement !
"Papyto94" a écrit dans le message de news:
4be06ee5$0$18006$Le 04/05/2010 20:36, Gloops a écrit :Bonjour,
Le 04/05/2010 19:31, Papyto94 a écrit :La propriété Top m'irait bien mais avec je ne peut pas placer le
controle sur l'entête, il ne le fait que sur le top de la section détailSet Ctl_Text = CreateControl("Frm_Formulaire", acTextBox, acDetail,,,
Que crois-tu donc que signifie acDetail ?
Regarde bien l'aide de CreateControlGauche, Haut, Largeur, Hauteur)
Merci
Mais je pense que CreateControl va me créer un contrôle mais pas déplacer
le mien que je devrai dans ce cas rendre invisible.