OVH Cloud OVH Cloud

probleme

3 réponses
Avatar
JCM
Bonjour,

dans un prog sur VB6 j'ai une frm1 comportant des labels :=20
lb1 et lbl2 devant recevoir des dates, OK
j'ai une autre frm2 comportant un calendar et un bouton=20
fermer,

ce que je veux faire :

1- je clic sur lbl1 et frm2 s'affiche
2- s=E9lectionner une date sur frm2
3 - je ferme la frm2
4 - le date selectionn=E9e s'affiche dans le label1 de frm1

jusqu'=E0 la ca fonctionne, le probleme se pose quand je=20
clic sur lbl2, si je selectionne une nouvelle date cela me=20
change les dates lbl1 et Lbl2

voici mon code, pouvez-vous me dire ou est l'erreur ?

-frm2-
Private Sub CldCalendrier_Click()
DTEaccord =3D CldCalendrier.Value
DTEenregistre =3D CldCalendrier.Value
End Sub

Private Sub CmdFermer_Click()
FrmFicheAffaire.UpdateMylbl (MAJ)
Unload FrmCalendrier
End Sub

-frm1-

Public Function UpdateMylbl(MAJ As String) As String
Lbl1.Caption =3D DTEaccord
Lbl2.Caption =3D DTEenregistre
End Function

Merci pour vos reponses
JCM

3 réponses

Avatar
Zoury
Salut Jean-Claude! :O)

Regarde cet exemple de boite de dialogue personnalisé... si tu applique le
même concept, tu n'auras (presque) jamais plus de problème pour passer des
infos d'un formulaire à l'autre.. ;O)
http://groups.google.com/groups?threadm=O3w9Ws5rDHA.3492%40TK2MSFTNGP11.phx.gbl

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
JCM
Salut Zoury

Merci pour ta réponse, mais je suis toujours en galere, je
me suis inspiré de l'exemple et
Désolé cela ne marche pas, sans doute je me suis planté
dans le code :

'FrmFicheAffaire (appelante)
'1 label : lblAccord
'1label : lblEnregistrement
'1label :lblEnvoi
'Ces labels reçoivent des dates extraites de Calendar
'l'affichage du calendar se fait par un click sur le label

Option Explicit

Private Sub LblAccord_Click()
LblAccord.Caption = ObtenirTexte(LblAccord.Caption, Me)
FrmCalendrier.Show 1
End Sub

Private Sub LblEnregistrement_Click()
LblAccord.Caption = ObtenirTexte
(LblEnregistrement.Caption, Me)
FrmCalendrier.Show 1
End Sub

Private Sub LblEnvoi_Click()
LblAccord.Caption = ObtenirTexte(LblEnvoi.Caption, Me)
FrmCalendrier.Show 1
End Sub

'FrmCalendrier.Show 1 (appelée)
'1 calendar : cldCalendrier
1 commandButton : cmdFermer
'un click sur une date = date retenue
'un click sur le bouton fermer = unload de
FrmCalendrier.Show 1 et affichage de la date dans le label

Option Explicit

Private Sub CldCalendrier_Click()
ObtenirTexte = CldCalendrier.Value
End Sub

Private Sub CmdFermer_Click()
Me.Hide
End Sub

Public Property Get Texte() As String
Texte = CldCalendrier.Value
End Property

Public Property Let Texte(ByRef stexte As String)
CldCalendrier.Value = stexte
End Property


Peux-tu me dire ou est l'erreur
merci de ta reponse
JCM



-----Message d'origine-----
Salut Jean-Claude! :O)

Regarde cet exemple de boite de dialogue personnalisé...


si tu applique le
même concept, tu n'auras (presque) jamais plus de


problème pour passer des
infos d'un formulaire à l'autre.. ;O)
http://groups.google.com/groups?threadm=O3w9Ws5rDHA.3492%


40TK2MSFTNGP11.phx.gbl

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 -


http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml -


http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire


profiter à tous


.



Avatar
Zoury
Salut Jean-Claude! :O)

LblAccord.Caption = ObtenirTexte(LblAccord.Caption, Me)
FrmCalendrier.Show 1




Dans mon exemple, L'appel de la fonction ObtenirTexte() (elle devrait se
nommer ObtenirDate() dans ton cas ;O)) s'occupe d'appeler le formulaire, de
lui passé les paramètres et de nous retourné la valeur de retour.. Le seul
code qui devrait se trouver dans ton évenement Click est :

'***
LblAccord.Caption = ObtenirDate(CDate(LblAccord.Caption), Me)
'***

et ta fonction ObtenirDate() devrait être implémentée un peu comme ceci :
'***
Public Function ObtenirDate(ByRef dtDefaut As Date, ByRef frmOwner As
Object) As Date

If (Not TypeOf frmOwner Is Form) Then Exit Function

Dim frm As Form2
Set frm = New Form2
frm.Date = dtDefaut
Call frm.Show(vbModal, frmOwner)
ObtenirDate = frm.Date
Call Unload(frm)

End Function
'***

et ton formulaire frmCalendrier devrait ressembler à ceci :
'***
Option Explicit

Private Sub CldCalendrier_Click()
Me.Hide
End Sub

Private Sub CmdFermer_Click()
Me.Hide
End Sub

Public Property Get Value() As Date
Value = CldCalendrier.Value
End Property

Public Property Let Value(ByRef dtValue As Date)
CldCalendrier.Value = dtValue
End Property
'***

note que le code n'est pas testé.. mais ça te donne l'idée globale..

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous