ti conviene scriverlo...
per le ricerche sui numeri usi
codice:
"(CAMPO >= " & primovalore & " AND CAMPO <= " & secondovalore & ")"
per le riceche sulle parole usi
codice:
"(CAMPO like '%" & parola & "%')
utilizzando le "%" indichi che prima e dopo (se li metti sia prima che dopo) ci possa essere scritto qualcos'altro
---
per la combinazione dei 15 campi di ricerca devi suddividere la creazione della query finale in 3 fasi
1 FASE
recupero dati
recuperi tutti i dati dal querystring o form
2 FASE
costruzioni semiquery
per i valori recuperati dove deve fare la ricerca (quindi non nulli) cominci a creare la query
codice:
if valoreromanzo <> "" then SQLPART_2 = "(CAMPO = '%" & valoreromanzo & "%') OR"
alla fine di tutti gli IF scrivi
codice:
SQLPART_final = SQLPART_1 & SQLPART_2 etc etc
if SQLPART_final <> "" then SQLPART_final = Trim(mid(SQLPART_final,1,len(SQLPART_final)-3)
il MID finale serve a togliere l'ultimo OR della fila...
3 FASE
crei la query finale
SQL = "SELECT * FROM miatabella WHERE " & SQLPART_final & " ORDER BY quellocehvoglio
---
fai attenzioni alle parentesi...
quando hai costruito tutto l'algoritmo, prima di eseguire la query stampala a schermo e leggila
controlla che non ci siano errori...
dovresti capire dove sono (se ci sono) 
codice:
response.write SQL
response.end
---
ciao
(se servono chiarimenti ci sono
)