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