Ho un problema su una query che mi dovrebbe fare visualizzare solo i dati relativi al mese che sto interrogando, ovvero il filtro non viene applicato, vengono visualizzati comunque records che in funzione alla mia logica dovrebbero appartenere ad un altro mese

Ho i campi datainizio e datafine che sono i 'filtri' per verificare la condizione di appartenenza o meno di un record in un tale mese.
Le variabili inizio e fine calcolano in modo corretto rispettivamente il primo e l'ultimo giorno del mese.

codice:
SELECT tbl_1.*,tbl_2.* FROM tbl_1 INNER JOIN tbl_2 on (tbl_1.id=tbl_2.id) 
WHERE (tbl_2.datainizio BETWEEN #"&inizio&"# AND #"&fine&"#) 
OR (tbl_2.datafine BETWEEN #"&inizio&"# AND #"&fine&"#) 
ORDER BY tbl_1.highlight ASC, tbl_2.datainizio ASC,tbl_2.datafine ASC,tbl_2.orainizio ASC
Dove sbaglio?

Grazie mille