It might be easier, if you can, to not separate them when you store them. There are plenty of functions to manipulate dates to pull back just the month, day, etc.
This might not work because you need one column where the formatdatetime is.
Select * FROM DB WHERE FormatDateTime(column1date "/" column2date "/"
column3date, 2) BETWEEN " & fdate & " AND " & tdate
You will probably have to take apart the input date(s) and select based on month, year, and day.
select * from db where columnyear between '" & szYear & "'
and columnmonth between '" & szMonth ... etc
(variables from the link)