Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запрос для каждой записи отдельно / 14 сообщений из 14, страница 1 из 1
18.11.2017, 07:05
    #39555394
фарход
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
здравствуйте, я новичок в аксесс и хотел бы спросить у знатоков.
есть список клиентов, и есть другая связанная с ним таблица в которой есть платежи этих клиентов.
как сделать так чтобы на форме ввода для каждого клиента отображалась сумма платежей которые он уплатил?
...
Рейтинг: 0 / 0
18.11.2017, 08:43
    #39555396
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
фарход,
В виду наличия отсутствия присутствия примера, на словах можно пояснить так:
Создаете форму - Клиенты
В нее вставляете подчиненную форму - Платежи , где указываете в свойствах - Основное поле (поле связи из таблицы - Клиенты) и - Подчиненное поле (поле связи тз таблицы - Платежи)
Выбирая Клиента в - Платежах указываете для него сумму платежа, и месяц.
...
Рейтинг: 0 / 0
18.11.2017, 10:07
    #39555404
фарход
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
Лапух,
такое я смогу сделать, мне бы желательно сумму для каждого клиента по отдельности в его основной форме.
образец будет попозже
...
Рейтинг: 0 / 0
18.11.2017, 10:52
    #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
18.11.2017, 10:57
    #39555415
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
фарход,
DSum(выражение,набор,[условие])
Код: vbnet
1.
свободноеПолеНаФормеВвода=Dsum("платежи","тблПлатежи","полеСвязи(обычноКодГлТабл)=" & Me.Код)
...
Рейтинг: 0 / 0
18.11.2017, 11:03
    #39555416
фарход
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
вот пример, того что я хочу сделать в желтых полях хочется увидеть данные по этому клиенту из другой таблицы
...
Рейтинг: 0 / 0
18.11.2017, 11:08
    #39555417
фарход
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
sdku,
выглядит легко.
а можно на моем примере.
...
Рейтинг: 0 / 0
18.11.2017, 12:51
    #39555427
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
фарходsdku,
выглядит легко.
а можно на моем примере.
У вас вместо - Подчиненной формы - Таблица
В подчиненной форме табличного вида, в примечании подформы можно создать свободное поле и в строке - Данные прописать
=Sum([сумма])
В основной форме также создать свободное поле и с помощью построителя выражений в строке свойств данного поля прописать выражение со ссылкой на поле подформы в примечании, что то типа:
=ИмяПодформы.Form!ВсегоНаСумму
Сделать на примере не могу, т. к. у меня Акс-2000 и пример могу только посмотреть только через конвектор из 2007 в 2000, если что то делать, то шибко тормозит.
Но думаю и сами справитесь если сделаете подчиенную форму.
Ибо в таблице этого сделать нельзя.
...
Рейтинг: 0 / 0
18.11.2017, 13:16
    #39555434
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
фарход,
-в поле должна содержаться минимальная единица информации (ФИО разбить на 3 поля: Ф,И,О-это избавит от проблем в дальнейшем)
-о вреде подстановки в таблицах на форуме говорили мильон раз-не делайте этого
...
Рейтинг: 0 / 0
18.11.2017, 13:38
    #39555445
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
чтоб не было ошибки на новой записи должно быть так:
Код: vbnet
1.
2.
3.
4.
If Not Me.NewRecord Then
Me.Поле7 = DSum("сумма", "платежи", "клиент=" & Me.Код)
Me.Поле9 = DCount("код", "платежи", "клиент=" & Me.Код)
End If
...
Рейтинг: 0 / 0
18.11.2017, 13:51
    #39555454
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
Я для подобной задачи добавил в справочник клиентов дополнительное поле с накопленной суммой, которую обсчитываю ночью.
...
Рейтинг: 0 / 0
18.11.2017, 14:46
    #39555477
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
Основополагающие принципы ACCESS определяют что таблица должна описывать ОДНУ сущность.Вам же советуют в таблицу с сущностью клиенты включать еще одну сущность-сумму с накоплением.(еще и вычисляемое поле,место которого в запросе.Учтите,что только создание правильной структуры таблиц позволяет довольно легко решать сложные задачи,которые с неправильной структурой вообще неразрешимы.В данном-то случае это ерунда,но привыкайте изначально делать все правильно-без нарушений принципов.Даже в Вашем, простейшем, примере пришлось подкорректировать структуру таблиц, чтоб легко и просто решить поставленную задачу)
...
Рейтинг: 0 / 0
18.11.2017, 15:35
    #39555482
Лапух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
sdku..."полеСвязи(обычноКодГлТабл)=" & Me.Код)...[/src]
На мой скромный эстетический взгляд , отображение общей суммы (для данного человека) прям в таблице или запросе, это прям не эстетично.
Полагаю нужно ТС а изнасильно-принудительно принудить к созданию - Подформы, где больше возможностей осуществить свою мечту.
...
Рейтинг: 0 / 0
25.11.2017, 16:24
    #39559429
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос для каждой записи отдельно
sdkuВам же советуют в таблицу с сущностью клиенты включать еще одну сущность-сумму с накоплением.(еще и вычисляемое поле,место которого в запросе.
В сущности "клиент" появляется дополнительное СВОЙСТВО "сумма покупок" с актулизацией на утро.
Довольно стандартная схема, позволяющая оперировать одним справочником.
И не задействовать массив "реализация" при принятии решений о скидках и подходе.
Тем более в табличных формах, когда нужен реестр.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / запрос для каждой записи отдельно / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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