При редактировании данных в подчиненной форме данные в таблице сдвигаются

Fighterovich
Дата: 16.01.2016 16:30:30
Добрый день.
В чем суть проблемы: Создал форму "Change_form" для поиска, просмотра и редактирования записей.
Поиск осуществлен через выбор трех критериев через три выпадающих меню и дальнейшим нажатием клавиши "поиск" (выполнением малюсенькой программы) и выводом информации в поля подчиненной формы "examplform"

После первого нажатия клавиши поиск появляется нужный текст, далее при попытке редактирования в поле подчиненной формы текста первый раз все успешно, после этого, при выборе новых параметров и нового поиска таже в подчиненной форме выводится нужный текст. Но! при попытке редактирования данной записи выскакивает следующее уведомление:

"Не удалось внести изменения из-за повторяющихся значений в индексе, первичном ключе или связях. Измените данные в одном или нескольких полях, содержащих повторяющиеся значения, удалите индекс или переопределеите его, разрешив повторяющиеся значения повторите попытку"

У меня три поля в таблице "MainTabl" откуда берет значения "Change_form" являются ключевыми, так как мне необходимо чтобы сочетания этих полей не повторялись.

При снятии значков "ключевого поля" и попытке провести два последовательных поиска с редактированием,
обнаружил, что в таблице "maintabl" меняется значение одного из критериев (бывших раньше ключевым) по которым ведется поиск на то что были в прошлом поиске.

Мне кажется что ошибка в коде кнопки "Поиск"

Private Sub Кнопка22_Click()
Dim sQ As String

sQ = " SELECT MainTabl.* " & _
" FROM MainTabl " & _
" WHERE (((MainTabl.Chang_param)=Forms!Change_Form!Chang_param) or Forms!Change_Form!Chang_param is null)" & _
" AND (((MainTabl.Bad_param) Like '*" & Forms!Change_form!Bad_param & "*') or Forms!Change_form!Bad_param is null) " & _
" AND (((MainTabl.Type_tabl) Like '*" & Forms!Change_form!Type_tabl & "*') or Forms!Change_form!Type_tabl is null) "

Me![ExamplForm].Form.RecordSource = sQ
Me![ExamplForm].Form.Refresh
End Sub

Так вот, как добиться того, чтобы при повторном поиске все значения по которым ведется поиск оставались на своих местах? А если бы значения были ключевыми, то не появлялось уведомление?

P.S. Ms Access только начал осваивать, поэтому некоторые решения возможно вам покажутся топорными, и пугающими. Очень надеюсь что мне покажут где я ошибся. Таже буду рад советам по оптимизации для придания большей элегантности формам и самой бд :)