Vorrei fare una ricerca multipla per una mailing-list

ad esempio cercare nel database gli abitanti di una determinata regione appartenenti ad una determinata categoria che hanno richiesto la possibilità di ricevere email


[CODE]



Response.Expires= 0

strDatabase=Request("database")
strCat=Request("cat")
strRegione = Request("NomeCampo")
strMail=Request("mailing")
if strMail="" then strMail="no"
if strDatabase="" then strDatabase="dataprova2.mdb" end if

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath(strDatabase)
Set Rs = Server.CreateObject("ADODB.Recordset")
sql="Select * from Tabella1 Where regione like '%" & strRegione & "%' AND mailing like '%" & strMail & "%' AND categoria like '%" & strCat & "%' order by id"
Rs.open sql,conn,1,3
if Rs.EOF or Rs.BOF then Response.Write" Nessun prodotto presente. La selezione è vuota. " end if
Do while Not Rs.EOF
Response.Write ("

<Font face='Verdana' size='2' >" & Rs("nome")& "</font></p>
")
Rs.MoveNext
loop

premesso che per la strRegione o strCat ecc, possono non avere valori ,
ora se chiedo di fare una ricerca solo per regione il tutto funziona
se chiedo di farla per regione + un altro valore, o non ricevo risultati o vedo tutti i record.

Sicuramente sbaglio io ma dove non lo capisco
Grazie Ciao