日付の1日にDateAdd関数でひと月をプラスし、そこからDateAdd関数で1日引くことで求めています。
dim SQL as String
dim rs As Recordset
SQL = "SELECT dateadd('d',-1,dateadd('m',1,format(日付フィールド,'yyyy/mm/01'))) FROM テーブル名"
Set rs = CurrentDb.OpenRecordset(SQL)
実行結果
2007/01/03 の場合 2007/01/31
2007/02/03 の場合 2007/02/28
2007/03/03 の場合 2007/03/31
2007/04/03 の場合 2007/04/30
2007/05/03 の場合 2007/05/31
2007/06/03 の場合 2007/06/30
2007/07/03 の場合 2007/07/31
2007/08/03 の場合 2007/08/31
2007/09/03 の場合 2007/09/30
2007/10/03 の場合 2007/10/31
2007/11/03 の場合 2007/11/30
2007/12/03 の場合 2007/12/31