You need to build up the field list as string and then build the sql from that like ...

Private Sub Calculate_Click()
    
    ValDate = #1/1/2002#
    
    runningDate = ValDate
    YearsBack = 2


    Months = YearsBack * 12 + Month(runningDate)
     
    'If Me.Period = "monthly" Then
         
        Set db = CurrentDb
        Set tdf = db.TableDefs("tblEPdata")


        For x = 1 To Months
            If Len(s) Then s = s & "," & vbNewLine
            s = s & mnthfld(runningDate, x)
        Next
        
        SQL = Replace("select % from tblEPdata", "%", s)
        
        Debug.Print SQL
        CurrentDb.QueryDefs("query1").SQL = SQL
        DoCmd.OpenQuery "query1"
    'End If
End Sub


Private Function mnthfld(dt, mno) As String
    useDateLower = dt
    useDateUpper = DateAdd("m", -mno + 2, dt)
    mnthfld = "IIf([issuedate] Between #" & Format(useDateLower, "mm/dd/yyyy") & "# And #" & _
        Format(useDateUpper, "mm/dd/yyyy") & "#,[grosspremium],0) as 'WP M" & _
        Format(useDateUpper, "mm yyyy") & "'"
End Function