You will need to write a few lines of VBA code. I assume you're happy with that and know how to get to the form's module. If you don't then ask.
Splitting dates into separate controls for month, day and year does mean you cannot use all those handy Access date functions but for the moment don't consider redesigning.
As an example let's assume that the month field for the sample date is a field called intSampleDateMonth and the field for the session date month is called intSessionDateMonth. In the AfterUpdate procedure for intSampleDateMonth simply type:
Code:
intSessionDateMonth = intSampleDateMonth
Do similar for the day and year portions.
Let's now assume that the field containing the last name is called txtLastName. Whether this is the existing field or a new one does not matter for this example. In the AfterUpdate event of txtLastName type:
Code:
txtLastName = Trim(txtLastName)
txtClientId = Left(txtLastNmae,1) & Right(txtLastName)
You do not tell us where the date of birth comes from but you will have to enhance the second line above to append the date of birth in whatever format you require, yyyymmdd, mmddyy, etc.
A word of warning.
You may want to test whether a client id already exists and if so do nothing. I can't think of anything worse than already assigned ids changing because someone corrects the spelling of the last name.