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

#sql #database #ms-access #ms-access-2016

#sql #База данных #ms-access #ms-access-2016

Вопрос:

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

У меня есть несколько таблиц, которые предоставляют информацию о некоторых полях в таблицах, но ключевыми таблицами являются:

Ticket_Group:

  • TGID (автоматический номер)
  • Ticket_Date
  • SupplierID (уникальный идентификатор поставщика сырья)
  • ShipperID (уникальный идентификатор для судоходной компании классификации)
  • MaterialID (уникальный идентификатор материала)
  • gl_dep (отдел главной книги)
  • mat_inv_rec (true / false, если получен счет на материалы)
  • freight_inv_rec (true / false, если получен счет на перевозку)

Запрос:

  • TID (автоматический номер для каждого билета)
  • TGID (Ссылки на TGID в Ticket_Group, многие идентификаторы к одному TGID)
  • кол-во (количество материала)

Что я хочу иметь возможность сделать, так это просмотреть все записи из Ticket_Group, для которых все еще не получены счета. Но мне также нужно видеть итоги, чтобы я мог их правильно сопоставить. Не совсем идеальный способ выполнить согласование AP, но это намного лучше, чем то, как мы это делаем в настоящее время (псевдо-сводная таблица с комбинациями поставщика и грузоотправителя с одной стороны и днями месяца сверху и отдельными билетами в виде значений, суммируемых в каждой ячейке).

То, что у меня есть сейчас, — это разделенная форма таблицы Ticket_Group с подчиненной формой Ticket. Я поместил сумму ([кол-во]) в нижний колонтитул подчиненной формы и сослался на это поле в основной форме. Это работает только наполовину, потому что в представлении единой формы итоговое значение верно, но в представлении таблицы данных общее количество выбранных записей отображается как общее количество для всех записей, пока не будет выбрана каждая отдельная запись.

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

Я супер новичок в MS Access, поэтому я действительно ценю помощь!

Комментарии:

1. Не совсем понимаю проблему. Итог правильный в представлении single form какой формы? Возможно, вы могли бы предоставить изображение?

2. @June7, я предполагаю, что mainform находится в режиме datasheet, который помещает данные подчиненной формы в treeview.

Ответ №1:

Ссылка на поле подчиненной формы не может работать, поскольку оно ссылается на фактическую (выбранную) запись основной формы. Вот почему представление таблицы данных показывает значение фактической выбранной записи mainform для всех записей, потому что существует только одна подчиненная форма с заполненным полем, которое изменяется в зависимости от записи mainforms, а не новое для каждой записи mainform.

Чтобы получить значение в Datasheet-View, получите его из таблиц, а не из подчиненной формы.

Например. установите Control-Source для TextBpx значение:

 =DSum("qty","Ticket","TGID = " amp; Ticket_Group.TGID)
  

или добавьте выражение в свой Form.RecordSource как поле типа:

 Select Ticket_Group.TGID, Ticket_Group.Ticket_Date, ... , DSum("qty","Ticket","TGID = " amp; Ticket_Group.TGID) as SumQty FROM Ticket_Group
  

чтобы форма была доступна для редактирования.

Или присоединиться

 Select TGID, Sum(qty) As SumTicketQty FROM Ticket Group By TGID
  

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

Комментарии:

1. Большое вам спасибо за помощь! Я думаю, что я делаю что-то неправильно, но я могу создать запрос, но когда я пытаюсь добавить его в свою форму, это невозможно на вкладке «Добавить поля». Когда я пытаюсь создать новую форму, чтобы посмотреть, нужно ли мне просто иметь запрос как часть источника записи. Но похоже, что она отображается только как подчиненная форма. И, к сожалению, мне нужно иметь возможность видеть значение в части таблицы данных splitform. Может быть, было бы лучше сделать запрос для всей информации, которая мне нужна для основной формы? Я обеспокоен тем, что набор записей не будет обновляться с помощью этого метода.