A family of Microsoft relational database management systems designed for ease of use.
Have you tried to set your default date time to be in the format yyyy-mm-dd, then use CDate( field_of_string_expression ) to get the data as Date instead of String, save that data (it will be internally stored as number of days since December 30th, 1899, independantly of the user default format for dates), then, bring back your default date format. Note that CDate check the default date format to know what date is really meant by: 01-02-03, as example, so that is why you have to have your default matching the one of your strings representions of date. It is not nice to impose that procedure on a typical end user, though, so, if this process has to be performed many times, routinely, this solution is not appropriate.
(We can just hope that one day VBA would be able to create a 'context' of default format, on which we can then apply formatting functions, like C# can, so we could handle these cases of mismatched date formats, and of dot or coma for decimal, and so on, WITHOUT having to PHYSICALLY change the User Setting... but I doubt it would ever be so, for VBA that is.)