1) Create a separate form called 'UFCalendar'
2) Put the active X calendar control on it.
3) Name the calendar control 'AXCalendar'
4) put the following code in the UFCalendar form
- double-clicking will cause date to be stored
'/==========================================/
Private Sub UserForm_Activate()
AXCalendar.Value = Now()
End Sub
'/==========================================/
Private Sub AXCalendar_DblClick()
'put selected date into registry
SaveSetting AppName:="ActiveXCalendar", _
section:="Date", Key:="Value", _
setting:=AXCalendar.Value
Unload UFCalendar
End Sub
'/==========================================/
5) the 2 'MouseDown' subs s/b:
'/==========================================/
Private Sub tbFrom_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
'show calendar
UFCalendar.Show
'get date from registry and put in textbox
Me.tbFrom.Value = GetSetting(AppName:="ActiveXCalendar", _
section:="Date", Key:="Value")
End Sub
'/==========================================/
'/==========================================/
Private Sub tbThru_MouseDown(ByVal Button As Integer, _
ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
'show calendar
UFCalendar.Show
'get date from registry and put in textbox
Me.tbThru.Value = GetSetting(AppName:="ActiveXCalendar", _
section:="Date", Key:="Value")
End Sub
'/==========================================/
--
Hope this helps.
If it does, please click the Yes button.
Thanks in advance for your feedback.
Gary Brown
"musclpete" wrote:
> I have a VBA form that I added 2 text boxes to determine a date range. In
> those boxes, it calls a calendar control that's initially invisible. Here's
> the code:
>
> Dim sWhere As String
> Private Sub tbFrom_MouseDown(ByVal Button As Integer, ByVal Shift As
> Integer, ByVal X As Single, ByVal Y As Single)
> cal1.Visible = True
> sWhere = "From"
> End Sub
>
> Private Sub tbThru_MouseDown(ByVal Button As Integer, ByVal Shift As
> Integer, ByVal X As Single, ByVal Y As Single)
> cal1.Visible = True
> sWhere = "Thru"
> End Sub
>
> Private Sub cal1_Click()
> If sWhere = "From" Then
> tbFrom.Text = cal1.Value
> Else
> tbThru.Text = cal1.Value
> End If
> sWhere = ""
> cal1.Visible = False
> End Sub
>
> What's not happening is when I 'mouse down' over either of the text boxes,
> the calendar doesn't come up. If I click in the area where the calendar
> control is located, then it selects a date even though I can't see what date
> I'm selecting. From then it works as expected.
> What am I missing? I've tried to put the same code in "dbl-click" and
> "change" and still get the same result.
|