Here is one possible solution, I hope your ready for this one:
I created 2 Forms. First Form is an Auto Form of Orders w/ Details form from Northwind. Next I added 3 buttons each with a Find Icon placed next to the 3 Date fields that were generated. The example I am presenting targets only the OrderDate field, but has been built to handle any date field.
Here is the Click event for the Commandbutton:
Private Sub cmdFindOrderDate_Click()
'Openargs contains the Forms Name Property and
'is concatenated w/ the pipe character and
'Field name to be searched.
DoCmd.OpenForm "frmDateFinder", acNormal, OpenArgs:=Me.Name & "|OrderDate"
End Sub
The second form is a Pop-up Dialog Form named frmDateFinder, with a single calendar control in it. The code is in two event procedures and two module scoped variables:
Private m_frmOriginal As Form
Private m_strFieldName As String
Private Sub Form_Open(Cancel As Integer)
Dim strOriginalForm As String
Dim arrOpenArgs() As String
'Verify that a Form.Name was passed in
'If not catch the null as an empty string
strOriginalForm = Nz(Me.OpenArgs, ""
'Test for null, if not Set private variable to original form
'and field to perform find on.
If strOriginalForm <> "" Then
'Split out the text into an array. Set the variables.
arrOpenArgs = Split(strOriginalForm, "|"

Set m_frmOriginal = Forms(arrOpenArgs(0))
m_strFieldName = arrOpenArgs(1)
End If
End Sub
Private Sub myCalendar_AfterUpdate()
Dim rst As Object
Set rst = m_frmOriginal.Recordset.Clone
rst.FindFirst m_strFieldName & " = #" & myCalendar.Value & "#"
If Not rst.EOF Then m_frmOriginal.Bookmark = rst.Bookmark
End Sub
As you can see when the form is open, it parses the Form Name and Field Name into array then to set a reference to the form and second to set the field that will be queried.
The AfterUpdate procedure is simply creating a clone on the recordset your looking at and performing a search on it. It then sets the bookmark property for the underlying recordset. This procedure can be modified to display a message that no record was found.
I hope this helps!
Jim Hope this helps!
Jim