Salve a tutti,

impazzisco!!!!!!! allora cerco di spiegarmi: io ho un database con una tabella indisponibilita fatta così:
codice:
id-camera | dataFrom | dataTo
dove per ogni camera viene settata la data di inizio e fine indisponibilità.

ora sto cercando di costruire il motore di ricerca, ma non riesco a trovare in maniera corretta le camere libere. Questa è la parte della query incriminata:
codice:
'esiste disponibilita per il periodo selezionato
sql=sql & " and not exists("

sql=sql & "select * from indisponibilita d where"

'intervallo date: from
sql=sql & " ((d.dataFrom between #" & ToItalian(dataIn) &"# and #" & ToItalian(dataOut) &"#)"

'intervallo date: to
sql=sql & " or (d.dataTo between #" & ToItalian(dataIn) &"# and #" & ToItalian(dataOut) &"#)"


'intervallo date: from 2
sql=sql & " or (d.dataFrom<=#" & ToItalian(dataIn) & "# and d.dataTo>=#" & ToItalian(dataIn) &"#)"

'intervallo date: to 2
sql=sql & " or (d.dataFrom<=#" & ToItalian(dataIn) & "# and d.dataTo>=#" & ToItalian(dataIn) & "#))"

'join
sql=sql & " and d.[id-camera]=cam.id)"
in sostanza avevo pensato al NOT EXISTS, quindi trovo se la camera che il database sta processando ha un periodo di indisponibilita in cui le mie date usate per la ricerca di INGRESSO e USCITA sono presenti.

solo che questo che ho scritto non funziona e non mi visualizza le camere libere, oppure mi visualizza le camere occupate per quel periodo!!!!

aiuto vi supplico qualcuno che mi possa aiutare

grazie