Вычисление количества похожих записей в несвязанном текстовом поле на форме. в MS Access 2016 - PullRequest
0 голосов
/ 30 января 2020

У меня есть несвязанное текстовое поле [txt_AmendmentOF] в форме для подсчета общего количества поправок, которые указанная запись c имеет в базе данных. Таким образом, пользователь знает, к какой поправке он относится. Просто вы находитесь на Поправке 3 из 8. У меня есть этот расчет, который я использую в поле «Источник управления» текстового поля [txt_AmendmentOF] :

=IIf(IsNull([txt_Amendment]),0,Count([MIPR_Number]))

есть Поле на моей таблице называется [Поправка] его текстовое поле в форме называется [txt_Amendment] . У меня есть расчет, возвращающий ноль в [txt_AmendmentOF] , если [txt_Amendment] равно нулю. Мне нужно, чтобы он подсчитал номер записи [MIPR_Number] , которые совпадают, и вернул общее количество подсчетов Поправок в текстовом поле [txt_AmendmentOF] . в моей таблице есть поле с секретным ключом, которое называется [ID] , это формат автонумерации. Проблема с кодом выше в том, что он считает все поля, которые имеют [MIPR_Number] и возвращает общее количество строк этого. Я не эксперт здесь, поэтому любая помощь будет принята с благодарностью.

Обновление для публикации .. Я также попробовал это и получил ошибку в текстовом поле

=IIf(IsNull([txt_Amendment]),0,Count([MIPR_Number]=[txt_MIPR_Number]))

1 Ответ

0 голосов
/ 30 января 2020

Подсчет по условию является одной из основных c задач базы данных. Чтобы получить ответы из базы данных, вы должны выполнить запрос к базе данных (и это делается путем создания запроса).

Для подсчета одинаковых [MIPR_Number] необходимо сгруппировать данные (группа содержит одинаковые номера), затем считать.

SELECT COUNT(id) as CountOfSameNr, [MIPR_Number] FROM Table GROUP BY [MIPR_Number]

Сохранить этот запрос как, например, CountMIPRNumber.

Теперь у вас есть две опции:

Используйте Dlookup, чтобы получить одно значение

=IIf(IsNull([txt_Amendment]),0,Dlookup("CountOfSameNr","CountMIPRNumber","[MIPR_Number] = " & [MIPR_Number]))

или добавьте запрос к источнику записей формы (присоединитесь к [MIPR_Number], «SELECT * FROM TABLE» - это запрос формы)

SELECT CountMIPRNumber.CountOfSameNr, TABLE.* FROM TABLE LEFT JOIN CountMIPRNumber ON TABLE.[MIPR_Number] = CountMIPRNumber.[MIPR_Number]

и обратитесь к полю подсчета

=IIf(IsNull([txt_Amendment]),0,[CountOfSameNr])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...