USAR UM MESMO CALENDARIO PARA VARIOS OBJETOS

WEBIER 27/04/2013 12:31:05
#422601
Conseguir achar o calendario que eu queria no meu projeto, porem, preciso usar o mesmo form (caledario) para preencher varios objetos...

exemplo:

tenho 02 forms: Cadastro_Cliente e Caledario

No form Cadastro_Cliente possui 03 objetos que precisao ser preenchido com datas: txtCadastro, txtNasc, txtValidade

então coloquei do lado de cada objeto que precisa ser preenchido com data um commandbutton para chamar o form Calendario....

Então preciso chamar o form já indicando para ele o objeto que ele vai preencher na volta dos dados...

Private Sub cmdCalendario1_Click()
Calendario.Show
[ô]cria a variavel e joga para o form calendario
End Sub


Quando eu der um duplo clique numa data, ele deverá me retornar a data e preencher o objeto pré-determinado
Private Sub ActiveCalendar1_DblClick()
Dim varObjeto As String
varObjeto = Format(ActiveCalendar1.SelectedDate, [Ô]dd/mm/yy[Ô])
End Sub


Como eu faço isso?
FFCOUTO 27/04/2013 19:04:44
#422617
Resposta escolhida
No form do Calendário na seção Options Declaration crie uma variável do tipo data, depois crie uma propriedade DateSelected


Dim dataSelecionada As Date

Public Property Get DateSelected() As Date
DateSelected = dataSelecionada
End Property


No duplo clique do controle de calendário você faz:


Private Sub ActiveCalendar1_DblClick()
dataSelecionada = ActiveCalendar1.SelectedDate
Unload Me
End Sub


No Form onde tem o comando que chama o calendário você faz:


Private Sub cmdCalendario1_Click()
Dim varData As Variant
Dim fCal As Calendario

varData = Empty [ô]Inicializa a variável

Set fCal = New Calendario [ô]Cria o form de calendário
fCal.Show vbModal

varData = fCal.DateSelected [ô]Recupera a data selecionada

Unoload fCal [ô]Fecha o form
Set fCal = Nothing [ô]Destrói a variável

If Not IsDate(varData) Then Exit Sub [ô]Valida a data
If varData = 0 Then Exit Sub

txtNasc = Format(varData, [Ô]dd/mm/yyyy[Ô]) [ô]Exibe a data no campo
End Sub


Espero ter ajudado.
Tópico encerrado , respostas não são mais permitidas