SELECT DISTINCT YEAR(d) AS nYear; , MONTH(d) AS nMonth, CMONTH(d) AS cMo ; , SPACE(24) AS cYM ; , {} AS dfrom, {} AS dTo ; FROM crsWhereWeHaveDAsDateField; WHERE NOT EMPTY(d); INTO CURSOR crsByMonth READWRITE ; ORDER BY 1,2 SCAN lcYM=cMo-STR(nYear,5,0) ld1=DATE(nYear, nMonth, 1) ld2=GOMONTH(ld1,1)-1 REPLACE cYM WITH lcYM ; , dfrom WITH ld1 ; , dTo WITH ld2 ENDSCAN...and then the string from the cYM column is fed to the combo, and the dFrom and dTo fields contain the first and last day of each month.