Function ReturnEarliestDate(strInput As String, strDelimiter As String) As Date ' Usage: ' In a query pass the dates in as a string with whatever delimiter you want. ' For example, with a pipe it would be: ' ReturnEarliestDate([DateField1] & "|" & [DateField2] & "|" & [DateField3] & "|" & [DateField4], "|") AS OldestDate ' ' It will return a single date - the earliest of the inputted dates. So, if the string ends up like: ' "1/2/2010|2/22/2010|4/2/1998|1/2/1998" ' the returned value would be 1/2/1998 Dim varSplit As Variant Dim i As Integer Dim dteHold As Date varSplit = Split(strInput, strDelimiter, , vbTextCompare) dteHold = varSplit(i) For i = LBound(varSplit) To UBound(varSplit) If i > 0 Then If varSplit(i) <> vbNullString Then If CDate(varSplit(i)) < dteHold Then dteHold = CDate(varSplit(i)) End If End If End If Next i ReturnEarliestDate = dteHold End Function