2016-05-13 2 views
0

У меня есть форма доступа с двумя подчиненными формами, как в непрерывном режиме. Поскольку я не могу иметь подчиненную форму внутри непрерывной формы, я должен был сделать это таким образом (Datasheet тоже не является вариантом)Доступ к источнику данных SubForm возвращается к оригиналу

В любом случае, когда я нажимаю на свою первую подформу, я меняю другой источник записи подформата, используя некоторые довольно простой код:

Public Sub MAJFiltre(intIdMembership As Integer) 
    IdMembershipFiltre = intIdMembership 

    Me.RecordSource = "SELECT * FROM T_PeriodeMembershipPartipant WHERE IdPeriodeMembreship=" & IdMembershipFiltre 
    Me.Requery 

End Sub 

Эта функция вызывается из первой подформы. Я сделал это для другой формы, и он работал нормально. Для этого, если я использую точку останова, я вижу, что источник записи изменен, но ничего не происходит в пользовательском интерфейсе. Однако, если я помещаю точку останова в событие BeforeInsert, я могу отчетливо видеть возврат реестров recordssource к исходному (без предложения WHERE)

Я также замечаю что-то необычное: если я сохраню код формы во время отладки, все внезапно, он работает. Однако, как только я закрою форму, она вернется к своей «багги».

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

Благодаря

ответ

0

Может проблема в том, что ваше имя поля опечатки в вашем критерии запроса?

IdPeriodeMembreship 

Если поле в вашем T_PeriodeMembershipPartipant таблице IdPeriodeMembERship вместо IdPeriodeMembREship вашего запроса, скорее всего, предложит вам ввести значение параметра вручную при запуске.

Если это поле существует в вашей таблице, но значение, которое вы указываете в своем критерии, не найдено в этом поле, оно не вернет никаких результатов, а источник записей второй субформы будет установлен в пустой набор записей.

+0

Правильное название поля. Как я уже упоминал, если я модифицирую код, тогда он начинает работать, но он останавливается, если я закрываю, сохраняю ли я или нет. Похоже на коррупцию ... Я попробую воссоздать все формы с нуля, если все остальное не получится. –

1

Это похоже на проблему, которую мы периодически подвергаем, которая связана с подчиненными формами, связанными с родительской формой, с идентификаторами link/id: если вы (т.е. Access сделал это для вас), непреднамеренно сохранили значение фильтра как свойство в одной из подформ (фильтр по источнику записи или в источнике записи), когда ваш код переназначает источник записи, это сохраненное значение препятствует правильному назначению нового источника записи, а доступ к мс тогда делает то, что он считает лучшим - в этот случай, возвращаясь к действительному (предыдущему) источнику записи.

Проверьте свои подформы на наличие нежелательных сохраненных значений свойств вкладки данных.

+0

Каков наилучший способ действий? Должен ли я воссоздать формы, чтобы убедиться, что ничего не осталось? Это не что-то такое большое, но это может раздражать, если это случается часто. –

+0

Просто очистите свойства в режиме проектирования, сохраните формы, а затем установите необходимые свойства во время выполнения –

Смежные вопросы