Based on what you have said, I think this will give you what you want. I wasn't sure that once you determined the date whether you wanted to pull only PO_DATA records that had a DELV_MONTH_DT= the determined date or whether you wanted <=. I show the query below with = in the WHERE clause. You can adjust as necessary. Basically, I used the DLookup() function to return the date with the flag (as yes) where the month & year were equal to the month and year of the current date. From there, I used the dateadd() function to add 7 days. That was nested in an IIF() function that tested whether the current date was < than that calculated date. If it was less than, I added 4 months to the current date. If the current date was greater than or equal to the calculated date then I added 5 months. I nested that twice (once for the year and again for the month) within the dateserial() function to return the first of the month in which that date occurred.
Code:
SELECT PO_DATA.pkPOID, PO_DATA.DELV_MONTH_DT
FROM PO_DATA
WHERE PO_DATA.DELV_MONTH_DT=dateserial(year(dateadd("m",IIF(date()<dateadd("d",7,Dlookup("P_CUTOFF_DT","CUTOFF","month(P_CUTOFF_DT)=" & month(date()) & "and YEAR(P_CUTOFF_DT)=" & year(date()) & " and PO_FLG=-1")),4,5),date())),month(dateadd("m",IIF(date()<dateadd("d",7,Dlookup("P_CUTOFF_DT","CUTOFF","month(P_CUTOFF_DT)=" & month(date()) & "and YEAR(P_CUTOFF_DT)=" & year(date()) & " and PO_FLG=-1")),4,5),date())),1)