2016-01-19 4 views
0

Это действительно непонятно.MS Access Form Не показывать результаты

У меня есть подчиненная форма, которая настроена как непрерывная форма и получает данные из запроса. Вот SQL-

SELECT Top 12 Tbl_Parent_ITN.ID, Tbl_Parent_ITN.ITN_Number, Tbl_Child_ITN.ITN, 
Tbl_Child_ITN.Parent_ITN_fk, Tbl_Scope_Rqmts.Completed, Tbl_Scope_Rqmts.Child_ITN_fk, 
Tbl_Lkup_Requirements.Requirement, Tbl_Lkup_Basis.Basis 
    FROM Tbl_Parent_ITN INNER JOIN (Tbl_Lkup_Requirements 
    INNER JOIN (Tbl_Lkup_Basis INNER JOIN (Tbl_Child_ITN INNER JOIN Tbl_Scope_Rqmts 
     ON Tbl_Child_ITN.Id = Tbl_Scope_Rqmts.Child_ITN_fk) ON Tbl_Lkup_Basis.ID = Tbl_Scope_Rqmts.Basis_fk) 
     ON Tbl_Lkup_Requirements.ID = Tbl_Scope_Rqmts.Requirements_fk) 
     ON Tbl_Parent_ITN.ID = Tbl_Child_ITN.Parent_ITN_fk 
      WHERE (((Tbl_Parent_ITN.ID)=[Forms]![Frm_Parent_ITN_Main]![parent_id])); 

Критерии в котором передается положение о SQL на основе управления в форме, которая предшествует эту форму. Значение - это первичный ключ родительской таблицы, который объединяется с несколькими дочерними таблицами, чтобы получить все данные для подформы.

Когда я открываю одну запись с дочерними элементами, она отлично работает, а форма заполняется 12 записями. Однако, когда я запускаю ту же операцию в следующей родительской записи, я не получаю никаких результатов, даже если у этого родителя есть 4 дочерние записи.

Что действительно вызывает недоумение, так это то, что когда я запускаю запрос независимо от открытия формы, он дает мне точные результаты, которые я хочу, основываясь на этой второй родительской записи. Кроме того, если я изменю подформат на таблицу, я все равно не получаю никаких записей; однако я могу видеть результаты в фильтрах формы таблицы данных, если я выберу эти заголовки столбцов (но в самой форме не отображаются записи). Свойства подформы в обоих случаях одинаковы, поэтому я не могу понять, что может привести к тому, что записи будут отображаться в первом случае, но не во втором?

ответ

1

Несколько предложений: 1. Попробуйте сделать Me.Refresh, чтобы узнать, что произойдет. 2. Поместите точку останова в событие OnError формы, чтобы увидеть, что-то не так. 3. Проверьте, есть ли другой источник данных, который может блокировать любые данные, которые необходимо обновить. 4. Убедитесь, что свойства no, определяющие отношения между родительским и дочерним данными, изменяются во время выполнения. 5. Проверьте, обновляется ли родительский идентификатор записи в событии OnCurrent формы.

Надеется, что это помогает, FunkSoulBrother

+0

спасибо Funk! Ваши идеи для 3 и 4 заставляют меня учитывать тот факт, что поля Link Master Fields и Link Child Fields были настроены на основе соотношения таблиц; однако, я использовал значение id предыдущей формы, чтобы отфильтровать запрос (что в основном позволяет мне выполнить то, что я хочу, с формой unbound). Поэтому, когда я удалил поля из этих свойств, он работал правильно! Спасибо. – Scott

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