powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запрос для каждой записи отдельно
14 сообщений из 14, страница 1 из 1
запрос для каждой записи отдельно
    #39555394
фарход
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте, я новичок в аксесс и хотел бы спросить у знатоков.
есть список клиентов, и есть другая связанная с ним таблица в которой есть платежи этих клиентов.
как сделать так чтобы на форме ввода для каждого клиента отображалась сумма платежей которые он уплатил?
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555396
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фарход,
В виду наличия отсутствия присутствия примера, на словах можно пояснить так:
Создаете форму - Клиенты
В нее вставляете подчиненную форму - Платежи , где указываете в свойствах - Основное поле (поле связи из таблицы - Клиенты) и - Подчиненное поле (поле связи тз таблицы - Платежи)
Выбирая Клиента в - Платежах указываете для него сумму платежа, и месяц.
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555404
фарход
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лапух,
такое я смогу сделать, мне бы желательно сумму для каждого клиента по отдельности в его основной форме.
образец будет попозже
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555413
JavaStudent
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У себя сделал так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Function SumRecord(istok As String, Pole1 As String, Pole2 As String, Filter As String)
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb()
SumRecord = 0
If Filter = "" Then
   If Pole2 = "" Then
      Set rst = dbs.OpenRecordset("select Sum(" & nz(Pole1) & ") as SumZ FROM " & istok)
   Else
      Set rst = dbs.OpenRecordset("select Sum(" & nz(Pole1) & "*" & nz(Pole2) & ") as SumZ FROM " & istok)
   End If
Else
   If Pole2 = "" Then
      Set rst = dbs.OpenRecordset("select Sum(" & nz(Pole1) & ") as SumZ FROM " & istok & " WHERE " & Filter)
   Else
      Set rst = dbs.OpenRecordset("select Sum(" & nz(Pole1) & "*" & nz(Pole2) & ") as SumZ FROM " & istok & " WHERE " & Filter)
   End If
End If
If rst.EOF Then
Else
   SumRecord = CCur(nz(rst("SumZ")))
End If
End Function



istok - это таблица на которой формируете данные подчиненной формы.
При изменении суммы или кол-ва в подчиненной форме запускаю пересчет сумм в главной.
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555415
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фарход,
DSum(выражение,набор,[условие])
Код: vbnet
1.
свободноеПолеНаФормеВвода=Dsum("платежи","тблПлатежи","полеСвязи(обычноКодГлТабл)=" & Me.Код)
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555416
фарход
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот пример, того что я хочу сделать в желтых полях хочется увидеть данные по этому клиенту из другой таблицы
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555417
фарход
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
выглядит легко.
а можно на моем примере.
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555427
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фарходsdku,
выглядит легко.
а можно на моем примере.
У вас вместо - Подчиненной формы - Таблица
В подчиненной форме табличного вида, в примечании подформы можно создать свободное поле и в строке - Данные прописать
=Sum([сумма])
В основной форме также создать свободное поле и с помощью построителя выражений в строке свойств данного поля прописать выражение со ссылкой на поле подформы в примечании, что то типа:
=ИмяПодформы.Form!ВсегоНаСумму
Сделать на примере не могу, т. к. у меня Акс-2000 и пример могу только посмотреть только через конвектор из 2007 в 2000, если что то делать, то шибко тормозит.
Но думаю и сами справитесь если сделаете подчиенную форму.
Ибо в таблице этого сделать нельзя.
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555434
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фарход,
-в поле должна содержаться минимальная единица информации (ФИО разбить на 3 поля: Ф,И,О-это избавит от проблем в дальнейшем)
-о вреде подстановки в таблицах на форуме говорили мильон раз-не делайте этого
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555445
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чтоб не было ошибки на новой записи должно быть так:
Код: vbnet
1.
2.
3.
4.
If Not Me.NewRecord Then
Me.Поле7 = DSum("сумма", "платежи", "клиент=" & Me.Код)
Me.Поле9 = DCount("код", "платежи", "клиент=" & Me.Код)
End If
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555454
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я для подобной задачи добавил в справочник клиентов дополнительное поле с накопленной суммой, которую обсчитываю ночью.
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555477
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Основополагающие принципы ACCESS определяют что таблица должна описывать ОДНУ сущность.Вам же советуют в таблицу с сущностью клиенты включать еще одну сущность-сумму с накоплением.(еще и вычисляемое поле,место которого в запросе.Учтите,что только создание правильной структуры таблиц позволяет довольно легко решать сложные задачи,которые с неправильной структурой вообще неразрешимы.В данном-то случае это ерунда,но привыкайте изначально делать все правильно-без нарушений принципов.Даже в Вашем, простейшем, примере пришлось подкорректировать структуру таблиц, чтоб легко и просто решить поставленную задачу)
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39555482
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku..."полеСвязи(обычноКодГлТабл)=" & Me.Код)...[/src]
На мой скромный эстетический взгляд , отображение общей суммы (для данного человека) прям в таблице или запросе, это прям не эстетично.
Полагаю нужно ТС а изнасильно-принудительно принудить к созданию - Подформы, где больше возможностей осуществить свою мечту.
...
Рейтинг: 0 / 0
запрос для каждой записи отдельно
    #39559429
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuВам же советуют в таблицу с сущностью клиенты включать еще одну сущность-сумму с накоплением.(еще и вычисляемое поле,место которого в запросе.
В сущности "клиент" появляется дополнительное СВОЙСТВО "сумма покупок" с актулизацией на утро.
Довольно стандартная схема, позволяющая оперировать одним справочником.
И не задействовать массив "реализация" при принятии решений о скидках и подходе.
Тем более в табличных формах, когда нужен реестр.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запрос для каждой записи отдельно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]