Io start e end non li ho come campi del db ma ho

Tabella Mesi:
inizio (campo data)
fine (campo data)

Tabella Report
Data (campo data)

VORREI FARE UN CONFRONTO ovvero dire da dove inizia il mese e dove finisce con i campi "inizio" e "fine" per poi pescare nella tabella Report solo i record dove il campo "data" rientra tra l'inizio e la fine.

ora la pagina è:

<%
Dim M, inizio, fine, mese
M = request.querystring("mese")
set Mesi = Server.CreateObject("ADODB.Recordset")
sql = "select * from Mesi where identifica_mese =" &M
Mesi.ActiveConnection = cn
Mesi.Open sql, cn

inizio = CStr(Mesi("inizio"))
fine = CStr(Mesi("fine"))


Mesi.close()
Set Mesi = nothing
%>
<%
set Report = Server.CreateObject("ADODB.Recordset")
sql = "SELECT * FROM Report WHERE Data <= Datevalue('" & inizio & "') Data end >= Datevalue('" & fine & "')"

Report.ActiveConnection = cn
Report.Open sql, cn
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%" align="center" class="rosso">Elenco Report:</td>
<td width="50%" align="center" class="rosso">Elenco Spese:</td>
</tr>
<%do while not Report.EOF%>
<tr>
<td width="50%"><%=Report("Titolo")%></td>
<td width="50%">g</td>
</tr>
<%
Report.movenext
loop
Report.close()
Set Report = nothing
%>
</table>



e l'errore è :......

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi (operatore mancante) nell'espressione della query 'Data <= Datevalue('01/12/2005') Data end >= Datevalue('31/12/2005')'.