MS Access дает #Name? Ошибка при SQL SP Fed Forms в некоторых условиях - PullRequest
0 голосов
/ 13 января 2020

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

Public Sub cssLoadAllJobs(lngCID As Long, frm As Form)
    'See methods and notes under cssLoadClient
    Dim rst As New ADODB.Recordset

    With rst
       Set .ActiveConnection = gcn
       .Source = "EXEC mysp_ActiveJobsForClient " & Nz(lngCID) 'Runs sp with parameter
       .LockType = adLockOptimistic
       .CursorType = adOpenKeyset
       .Open
    End With

    Set frm.Recordset = rst

    Set rst = Nothing
End Sub

Все они работают нормально и с ними проблем нет.

Однако в основной форме я загружаю некоторые из них в наследование что-то вроде Client, Site и Jobs.

Для работ у меня есть два разных SP. Один фильтруется по клиенту, а затем по сайту, а затем по оборудованию на этом сайте. Другое фильтруется только клиентом.

Что происходит, если я загружаю один с загрузкой фильтров в основную форму, основная форма работает нормально. Однако, если я загружаю задания, отфильтрованные только по CLient, основная форма выбрасывает #Name? во все поля записей клиента, и все поля подчиненной работы также отправляются в #Name?.

. Думаю, это должно быть просто диагностика Я закомментировал строку, загружающую подчиненную форму Job, и все в порядке. Если я затем добавлю код обратно для полностью отфильтрованной подчиненной формы, то основная форма будет работать нормально.

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

Чтобы сделать это более понятным:

  • SP1 = отфильтровано клиентом
  • SP2 = отфильтровано клиентом и отфильтровано по сайту и отфильтровано по оборудованию

  • Mainform с SP2 Works

  • Mainform с SP1 #Name?

  • Subform load как форма SP1 Works

  • Загрузка подчиненной формы в виде формы SP2 работает

Полагаю, простой тест - создать новую подчиненную форму и поменять ее местами, но ... Почему?

...