Need to understand programming, start with review of http://office.microsoft.com/en-us/ac...010341717.aspx
How many records are involved? Here is a function that will handle the sample data (assumes every record has a value of one of the 4 patterns and does not include error handling):
Code:
Function ConvertDate(strDate As String, strRangePosition) As Date
Dim aryParts As Variant
Dim dteStart As Date, dteEnd As Date
If InStr(strDate, "-") Then
aryParts = Split(strDate, "-")
If Val(aryParts(0)) > 0 Then
'strDate is pattern YYYY-YYYY
dteStart = "1/1/" & aryParts(0)
dteEnd = "12/31/" & aryParts(1)
ElseIf Left(aryParts(0), 1) = "Q" Then
'strDate is pattern Q#-YYYY
dteStart = CDate(Choose(Mid(aryParts(0), 2), 1, 4, 7, 10) & "/1/" & aryParts(1))
dteEnd = DateAdd("m", 3, dteStart) - 1
Else
'strDate is pattern MMM-YYYY
dteStart = CDate(aryParts(0) & "/1/" & aryParts(1))
dteEnd = DateAdd("m", 1, dteStart) - 1
End If
Else
'strDate is pattern YYYY
dteStart = CDate("1/1/" & strDate)
dteEnd = CDate("12/31/" & strDate)
End If
ConvertDate = IIf(strRangePosition = "Start", dteStart, dteEnd)
End Function
Call the function in a query or textbox on form or report, like
ConvertDate([fieldname],"Start")
ConvertDate([fieldname],"End")