There are a lot of different calendar controls out there, and a lot of ways to do it. Here is a simple one using a bound ActiveX calendar control. Build a form with nothing on it but a calendar (frmPopUpCalendar). Set the propery of "Dialog" to "Yes". On this form put a Public variable right at the top.
--Begin Code
Option Compare Database
Option Explicit
Public mControlSource As Control
Public Property Set ControlSource(theControl As Control)
Set mControlSource = theControl
If IsDate(mControlSource.Value) Then
activeXctlCalendar.Value = mControlSource.Value
activeXctlCalendar.Year = Year(mControlSource.Value)
End If
End Property
Private Sub activeXctlCalendar_Click()
If mControlSource.Name = "activeXctlCalendar" Then
MsgBox " You must set the control source in code for this to work." & vbCrLf & _
" ex. Forms![frmPopUpCalendar].ControlSource = theTextBox "
Exit Sub
End If
mControlSource.Value = activeXctlCalendar.Value
DoCmd.Close acForm, Me.Name
End Sub
Private Sub Form_Open(Cancel As Integer)
'If they do not set the control source this form does not work.
'Set it to itself as a way to initialize the object
Set mControlSource = activeXctlCalendar
End Sub
---End Code
From your click event use open the pop up calendar form
and set the "Control Source".
If you click in "txtBoxBirthDate" then
Forms![frmPopUpCalendar].ControlSource = txtBoxBirthDate
I have not looked at Zameers, they may have a lot better functionality. There are tons of free examples out there. Of all the useless templates that come with Access this would be worthwhile.