Format dates as U.S. dates regardless of regional settings

When you use Visual Basic for Applications (VBA) to concatenate dates into an SQL string, you must use a standard U.S. date format, regardless of the region that you have set in the Regional Settings tool in Control Panel. This topic contains a custom function that will convert any date into a U.S. date format.

Function MakeUSDate(DateIn As Variant) As String 
 
    ' Do nothing if the value is not a date. 
    If Not IsDate(DateIn) Then Exit Function 

    ' Format the date value as a U.S. date formatted string expression.
    MakeUSDate = "#" & Month(DateIn) & "/" & Day(DateIn) & "/" & Year(DateIn) & "#"

End Function

Support and feedback

Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.