Ho provato con una funzione:
codice:
Dim ricerca, rs, rs_numRows, prestito, opzione, sql

opzione = request.querystring("tiporicerca")

function selsezione(opzione)
select case opzione
  case "1"
    sql = "SELECT * FROM archivio WHERE nome AND genere AND cont_alt LIKE '%"&ricerca&"%' ORDER BY nome ASC"
  case "2"
    sql = "SELECT * FROM archivio WHERE nome LIKE '%"&ricerca&"%' ORDER BY nome ASC"
  case "3"
    sql = "SELECT * FROM archivio WHERE genere LIKE '%"&ricerca&"%' ORDER BY nome ASC"
  case "4"
    sql = "SELECT * FROM archivio WHERE cont_alt LIKE '%"&ricerca&"%' ORDER BY nome ASC"
end select
end function

If (Request.QueryString("cerca") <> "") Then 
  ricerca = Request.QueryString("cerca")
  else
ricerca = "§"
End If

ricerca = Replace(ricerca, "'", "''")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = MM_archivio_STRING
rs.Source = selsezione(opzione)
rs.CursorType = 0
rs.CursorLocation = 2
rs.LockType = 1
rs.Open()
E mi da
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E0C)
Testo del comando non impostato per l'oggetto comando.
/archivio cinematografico/default.asp, line 35