Code:
Function StartDate(Optional intvar As Long) As Date
Dim tmpdate As Date
Dim dbgdate As Date
'tmpdate = Now()
If IsNull(intvar) Or intvar = 0 Then
StartDate = Format(DateAdd("yyyy", -1, Now()), "mm/dd/yyyy")
'dbgdate = StartDate
Else
StartDate = Format(DateAdd("m", -1 * intvar, CDate(Month(Now()) & "/01/" & Year(Now()))), "mm/dd/yyyy")
' dbgdate = StartDate
End If
' Debug.Print "Start Date: " & dbgdate
End Function
Public Function Enddate(Optional intvar As Long) As Date
'Dim tmpdate As Date
'Debug.Print intvar
'Enddate = DateAdd("d", -1, Now())
If intvar = 0 Then
Enddate = DateAdd("D", -1, Now())
Else
Enddate = DateAdd("d", -1, DateAdd("d", -1, StartDate(intvar)))
End If
''Debug.Print "End Date:" & tmpdate
'Enddate = Format(tmpdate, "mm/dd/yyyy")
End Function
Here's the union query which works fine
Code:
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT, StartDate(12) as mnth,dbo_rvs_memb_company.rev_fullname as mbr
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(12)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(12)));
union all
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(11),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(11)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(11)));
union all
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(10),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(10)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(10)));
union all
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(9),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(9)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(9)));
union all
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(8),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(8)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(8)));
union all
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(7),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(7)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(7)));
union all
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT, StartDate(6),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(6)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(6)));
union all
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(5),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(5)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(5)));
UNION ALL
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(4),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(4)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(4)));
UNION ALL
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(3),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(3)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(3)));
UNION ALL
SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(2),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(2)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(2)));
UNION ALL SELECT dbo_tbl_HPCODEs.PRODUCTLINE, dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID, dbo_RVS_MEMB_COMPANY.PROV_KEYID, dbo_RVS_MEMB_PCPHISTS.PCPFROMDT, dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT,StartDate(1),dbo_rvs_memb_company.rev_fullname
FROM (dbo_RVS_MEMB_PCPHISTS INNER JOIN dbo_RVS_MEMB_COMPANY ON dbo_RVS_MEMB_PCPHISTS.MEMB_KEYID = dbo_RVS_MEMB_COMPANY.MEMB_KEYID) INNER JOIN dbo_tbl_HPCODEs ON dbo_RVS_MEMB_COMPANY.HPCODE = dbo_tbl_HPCODEs.HPCODE
WHERE (((dbo_RVS_MEMB_PCPHISTS.PCPFROMDT)<=enddate(1)) AND ((dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT) Is Null Or (dbo_RVS_MEMB_PCPHISTS.PCPTHRUDT)>StartDate(1)));
and finally the query where the error occurs