OK, I have a better idea now of what you are doing. You are storing a
specific date in the subform's record source table, not just the month. All
you need to do is display that date as the month and year. For instance,
this expression in an unbound text box will show you the month and year:
=Format([Ltr_Date],"mmm, yyyy")
I can only repeat that since the main form tables seem to be properly
related to the subform tables, all of the information in the main form is
available in the subform.
More to the point, there is no need to store the month in the main form. It
seems you are re-creating the main record each month. Storing the same data
over and over is not good design.
Instead, you could have an unbound text box (txtMonth) on the main form in
which you enter a date such as Aug. 1, 2007. A command button click event
could be:
Dim strMonthLtr as String, strMonthVO as String
strMonthLtr = "SELECT * FROM tblLetters WHERE " & _
"Month(LtrDate) = Month(txtMonth) AND " & _
"Year(LtrDate) = Year(txtMonth)"
strMonthVO = "SELECT * FROM tblVO WHERE " & _
"Month(VODate) = Month(txtMonth) AND " & _
"Year(VODate) = Year(txtMonth)"
Me.fsubLtr.Form.RecordSource = strMonthLtr
Me.fsubVO.Form.RecordSource = strMonthVO
To see all records, another command button could be:
Dim strAllLtr as String, strAllVO as String
strAllLtr = "SELECT * FROM tblLetters"
strAllVO = "SELECT * FROM tblVO"
You could add an ORDER BY clause if you like. There is probably a better
way to put this together, such as allowing the user to select month and year
from two text boxes, or something like that, but this is the general idea.
If you are saying you want to copy the main form and its related records,
there is a method here:
http://allenbrowne.com/ser-57.html
However, I can't understand why you would need to do that. Are letters,
VOs, and OBs the same from month to month? What about the date?
Now for the short answer to your original question (I think). You can add
code to the subform so that if it is a new record you copy the month from
the main form:
If Me.NewRecord Then
Me.LtrMonth = Me.Parent.ProjMonth
End If
I may not have the field names quite right, but that is how it would work.
It is a bad idea, but there it is.