FeS2
Since you can only make a field required or not required, even with the use of multi-field indexes, you have three approaches.
Validation
One approach is through validation coding. Use the BeforeUpdate event procedure. Check to make sure each required field has valid data.
If the validation fails, then cancel the update, and place the cursor / SetFocus on the control that is missing the data.
Second table
The second approach is to use the table design as you requested, but with a twist.
Create a second table for storing your email addresses. Use the primary key from the contact table as the foreign key in the the email table.
Just a though...
tblContact
ContactID - primary key
ContactLN - last name
ContactFN - first name
tblEmail
EmailID - primary key
ContactID - foreign key to tblContact
eMailAdd - text string, required
DateSent - date field, requried
If no email is to be sent, no record is created.
Default value
Again using the BeforeUpdate procedure, set the date field to the current date, or something similar.
Code:
If Not IsDate(Me.YourDateSentField) Then
Me.YourDateSentField = Date()
End If
Richard