DR.XXX, DBEdit - это поля, предназначенные для отображения и ввода информации, а не для поиска. если вы в DbEdit введёте данные, ADOQuery попытается вставить их БД. в лучшем случае - ничего не произойдёт. в худшем - будет ругань, типа "Dataset not in Edit or Insert mode".
надо взять обычные Edit, никак не связанные с БД. по клику на CheckBox делать EditN.Enabled := CheckBoxN.Checked. сформировать список имён полей (FNames - обычная строка, поля разделяются через точку с запятой) и список значений (вариантный массив, например: FValues := VarArrayOf ([Edit1.Text, Edit3.Text]) ) для включенных Edit'ов.
а дальше, собственно, искать: ADOQuery.Locate (FNames, FValues, [loPartialKey]);
Алексей1153++, Лёша, ты привёл алгоритм не поиска, а фильтра