Firstly, do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead
Secondly, why the heck are you taking a string based date, converting it to a DateTime, converting it back to a string, and passing it to Access in order for it to convert it right back to a DateTime value again?
Do yourself a favour: if you must use textbox for date based entries (and I wouldn't) then write your code so that it checks if the user has entered a valid date. If you don't then you will get an application error "String was not recognized as a valid DateTime" - which I'm sure you have already noticed.
Check the user input using DateTime.TryParse, and use a parameterised quyery to pass it to Access only if it is valid information.
DateTime DOB;
if (!DateTime.TryParse(calender.Text, out DOB))
{
...
return;
}
...