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

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

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

Ticket_Group:

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

Ticket:

  • TID (Autonumber forКаждый билет)
  • TGID (ссылки на TGID в Ticket_Group, много TID на один TGID)
  • Кол-во (количество материала)

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

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

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

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

1 Ответ

0 голосов
/ 09 марта 2019

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

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

Например, установите Control-Source TextBpx на:

=DSum("qty","Ticket","TGID = " & Ticket_Group.TGID)

или добавьте выражение к вашему Form.RecordSource в виде поля, например:

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

, чтобы редактировать форму.

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

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

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

...