powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Записать в таблицу несколько пятниц от определенной даты.
29 сообщений из 29, показаны все 2 страниц
Записать в таблицу несколько пятниц от определенной даты.
    #39845449
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех! Помогите составить код. Мне надо записать в таблицу Payments в поле DataP даты 30-ти пятниц, которые наступят последовательно после даты, которую я записываю в первую строку в поле DataP.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39845464
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай таблицу с числами от 1 до 30. Добавь её в источник запроса и прибавляй к дате их, умножив на 7. Чтобы получить пятницу - отними от даты номер её дня недели и прибавь... ну там сам посчитаешь сколько.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39845551
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как вариант:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Form_Current()
Dim a, myweek
myweek = Weekday(Me.myDate)
Select Case myweek
Case 1
a = 5
Case 2
a = 4
Case 3
a = 3
Case 4
a = 2
Case 5
a = 1
Case 6
a = 0
Case 7
a = 6
End Select
Me.Friday30 = Me.myDate + a + (7 * 29)
End Sub
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39845557
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr...Мне надо записать в таблицу Payments в поле DataP даты 30-ти пятниц, которые наступят последовательно после даты, которую я записываю в первую строку в поле DataP.В таблицу это не записывают. Писать в табл.дату отстоящую от уже внесенной на 30 пятниц(тем более перебрать все 30 значений) есть излишествующие данные (Они всегда вычисляются или процедурой или функцией.Записывать в поле тридцать значений это уж слишком-Считаю что даже 2 много)
Совершенно другой смысл-добавить в тбл. 30 записей с датами,но не зная логики работы и решаемые БД задачи сказать что-то определенное невозможно
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39845580
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, спасибо за идею, что-то получается.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39845581
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrr...Мне надо записать в таблицу Payments в поле DataP даты 30-ти пятниц, которые наступят последовательно после даты, которую я записываю в первую строку в поле DataP.В таблицу это не записывают. Писать в табл.дату отстоящую от уже внесенной на 30 пятниц(тем более перебрать все 30 значений) есть излишествующие данные (Они всегда вычисляются или процедурой или функцией.Записывать в поле тридцать значений это уж слишком-Считаю что даже 2 много)
Совершенно другой смысл-добавить в тбл. 30 записей с датами,но не зная логики работы и решаемые БД задачи сказать что-то определенное невозможно
Да, добавить 30 записей с датами пятниц.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39845598
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub cmb_Click()
Dim a, myweek, rs As Recordset, myFriday, i
Set rs = CurrentDb.OpenRecordset("tbl")
myweek = Weekday(Me.myDate)
Select Case myweek
Case 1
a = 5
Case 2
a = 4
Case 3
a = 3
Case 4
a = 2
Case 5
a = 1
Case 6
a = 0
Case 7
a = 6
End Select
'case можно заменить:If myweek<7 then a=6-myweek else a=6
myFriday= (Me.myDate) + a
For i = 0 To 29 'можно без рекордсета использовать запрос на добавление:CurrentDB.Execut...
rs.AddNew
rs!myDate = myFriday
myFriday= myFriday+ 7
rs.Update
Next
End Sub
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846342
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrr,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub cmb_Click()
Dim a, myweek, rs As Recordset, myFriday, i
Set rs = CurrentDb.OpenRecordset("tbl")
myweek = Weekday(Me.myDate)
Select Case myweek
Case 1
a = 5
Case 2
a = 4
Case 3
a = 3
Case 4
a = 2
Case 5
a = 1
Case 6
a = 0
Case 7
a = 6
End Select
'case можно заменить:If myweek<7 then a=6-myweek else a=6
myFriday= (Me.myDate) + a
For i = 0 To 29 'можно без рекордсета использовать запрос на добавление:CurrentDB.Execut...
rs.AddNew
rs!myDate = myFriday
myFriday= myFriday+ 7
rs.Update
Next
End Sub


Спасибо! Работает хорошо.
А если нужно не добавить, а записать в существующие записи таблицы 30 пятниц? Вы писали, что можно с помощью функции это сделать. Можно подробнее?
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846401
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrrА если нужно не добавить, а записать в существующие записи таблицы 30 пятниц? Вы писали, что можно с помощью функции это сделать. Можно подробнее?Для этого нужно знать в какие записи (критерий) и от какой даты считать
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846425
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку:а про подчиненную таблицу не думали?
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846460
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrrА если нужно не добавить, а записать в существующие записи таблицы 30 пятниц? Вы писали, что можно с помощью функции это сделать. Можно подробнее?Для этого нужно знать в какие записи (критерий) и от какой даты считать
Что бы конкретизировать задачу прикрепляю бд.
Нужно при нажатии кнопки Funded записать в поле Date_scheduled первой записи текущую дату, а в последущие записи в это поле записать даты 30-ти пятниц после текущей даты.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846609
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr,
посмотрите-так?
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846616
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку:имейте ввиду-округление сделано не корректно (сумма оплат не совпадет с занесенной на главной форме)
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846639
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrr,
посмотрите-так?
К сожалению, нет.
Суммы оплат ставятся в таблицу раньше, чем даты "пятниц". Т.е. оплаты уже стоят и надо в эти записи вставить даты пятниц. Можно не 30, а по количеству оплат. Оплаты все разные и могут быть не равны друг другу. Будем считать, что они ставятся вручную.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846655
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr,
чё-то не понял я логику:если оплата(взнос) состоялся в среду почему нужно ставить дату(заведомо ложную-пятницу) о проведении оплаты.Может просто подсчитывать сумму взносов и остаток на данную(или любую) дату и иметь историю оплат
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846658
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и посмотрите внимательно:поле взнос это график платежей(план),а поле факт это фактическая оплата,можно добавить поле фактДата и заполнять вручную(а как иначе?)
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846679
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrr,
чё-то не понял я логику:если оплата(взнос) состоялся в среду почему нужно ставить дату(заведомо ложную-пятницу) о проведении оплаты.Может просто подсчитывать сумму взносов и остаток на данную(или любую) дату и иметь историю оплат
Это формирование плана-графика оплат. Сначала формируются суммы и количество оплат. Они вносятся в таблицу. Потом вставляются даты. Первая дата - текущая, остальные даты - пятницы. Я в примере бд смоделировал ситуацию, добавлять и менять там ничего не надо. Исходная позиция на рис1., результат работы функции или процедуры на рис2.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846680
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
рис2.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846681
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
07.08.2019 это дата текущая, затем записываем даты пятниц по неделям.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846718
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrrЭто формирование плана-графика оплат. Сначала формируются суммы и количество оплат. Они вносятся в таблицу. Потом вставляются даты....sdkuи посмотрите внимательно:поле взнос это график платежей(план),а поле факт это фактическая оплата,можно добавить поле фактДата и заполнять вручную(а как иначе?)Все это напоминает разговор слепого с глухим.
Интересно, Вы хоть читаете и вдумываетесь в то, что Вам пишут????
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846925
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrrЭто формирование плана-графика оплат. Сначала формируются суммы и количество оплат. Они вносятся в таблицу. Потом вставляются даты....sdkuи посмотрите внимательно:поле взнос это график платежей(план),а поле факт это фактическая оплата,можно добавить поле фактДата и заполнять вручную(а как иначе?)Все это напоминает разговор слепого с глухим.
Интересно, Вы хоть читаете и вдумываетесь в то, что Вам пишут????
Я же конкретно и, надеюсь, понятно изложил суть задачи. Сделал простой пример бд (см. выше). Ничего добавлять не нужно, вопрос чисто технический. Можно ли записать даты (1-я текущая, остальные - пятницы) в уже имеющиеся записи с заполненными суммами платежей?
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846960
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr,
для тех кто в танке:
-заполняем главную форму
-"послеОбновления"(нажатия Enter) поля [сумма] заполняется подчиненная форма(соответственно таблица-источник) план платежей [датаО] -дата платежа план(каждую пятницу начиная от даты в поле[дата])и [взнос] c запланированным размером(в данном случае [сумма]/30 а вообще любая Ваша формула)
-поля [факт]-фактический платеж и добавленное [фктическаяДатаПлатежа]заполняются вручную при совершении платежа и для формирования чека(приходного ордера и т.д)
-что не так???
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846973
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr.....Да, добавить 30 записей с датами пятниц.wladimirrr...Ничего добавлять не нужно, вопрос чисто технический.Стой там-иди сюда,однако(сказал чукча,так ничего и не поняв)
А почему план выплат создается не одновременно с внесением суммы заказа(договора,контракта)-обычно клиент хочет видеть план платежей одновременно с договором и, в случае обоюдного согласия, с возможностью его корректировки
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39846985
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuwladimirrr.....Да, добавить 30 записей с датами пятниц.wladimirrr...Ничего добавлять не нужно, вопрос чисто технический.Стой там-иди сюда,однако(сказал чукча,так ничего и не поняв)

А почему план выплат создается не одновременно с внесением суммы заказа(договора,контракта)-обычно клиент хочет видеть план платежей одновременно с договором и, в случае обоюдного согласия, с возможностью его корректировки
Вот и займи у них денюжков (как насчитают "мама не горюй")
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39847709
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrr,
для тех кто в танке:
-заполняем главную форму
-"послеОбновления"(нажатия Enter) поля [сумма] заполняется подчиненная форма(соответственно таблица-источник) план платежей [датаО] -дата платежа план(каждую пятницу начиная от даты в поле[дата])и [взнос] c запланированным размером(в данном случае [сумма]/30 а вообще любая Ваша формула)
-поля [факт]-фактический платеж и добавленное [фктическаяДатаПлатежа]заполняются вручную при совершении платежа и для формирования чека(приходного ордера и т.д)
-что не так???
Все не так!
Заполнять поля (сумма) не нужно. Они уже предварительно заполнены (один спец просчитывает и записывает суммы, затем другой специалист должен проставить текущую дату и остальные даты-пятницы). Надо решить, как в эти записи автоматически вставить даты.
Я написал:"ничего добавлять не надо", имея в виду, ничего придумывать и менять в логике работы не надо. Что непонятного? Кто из нас в танке? Чем стебаться, предложите как решить задачу.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39847731
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrrОни уже предварительно заполнены (один спец просчитывает и записывает суммы, затем другой специалист должен проставить текущую дату и остальные даты-пятницы).Стесняюсь спросить: а ЗАЧЕМ нужны целых ДВА "специалиста" для выполнения работы которую комп выполняет за доли секунды после внесения даты и общей суммы договора (надо понимать ТРЕТЬИМ "специалистом")
wladimirrr....ничего придумывать и менять в логике работы не надо....Она "железней железной"
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39847849
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuwladimirrrОни уже предварительно заполнены (один спец просчитывает и записывает суммы, затем другой специалист должен проставить текущую дату и остальные даты-пятницы).Стесняюсь спросить: а ЗАЧЕМ нужны целых ДВА "специалиста" для выполнения работы которую комп выполняет за доли секунды после внесения даты и общей суммы договора (надо понимать ТРЕТЬИМ "специалистом")
wladimirrr....ничего придумывать и менять в логике работы не надо....Она "железней железной"
Тема этого топика - поиск решения конкретной задачи, а не обсуждение бизнес-процессов и организации работы специалистов. Если есть, что по делу, буду благодарен, если нет, не надо засорять тему.
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39847870
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wladimirrr,
под рукой был только эксель
Любой день недели, любое количество этих дней, проверка перед первым платежом количества дней, если меньше определенного количества то переходим к следующей пятнице
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Sub test()
Const kolPridays& = 30, NimrDAyofweek& = 5
Dim d1 As Date
d1 = Date
Sheets("Лист1").Cells(1, 4).Value = d1
MakeFriday d1, kolPridays, NimrDAyofweek
End Sub
Private Sub MakeFriday(ddate As Date, kolPridays&, NimrDAyofweek&)
On Error GoTo handle1
Const firstPaument& = 3
Dim kolPtn&, d1 As Date, nomrofday&
kolPtn = 0: d1 = ddate
Do Until kolPtn = kolPridays
d1 = DateAdd("y", 1, d1)
nomrofday = Weekday(d1, vbMonday) ' monday is first
If nomrofday = NimrDAyofweek Then
If kolPtn = 0 Then' если до следующего платежа количество дней меньше firstPaument переносим его
    If DateDiff("y", ddate, d1, vbMonday) < firstPaument Then GoTo go1
End If
kolPtn = kolPtn + 1: Sheets("Лист1").Cells(1 + kolPtn, 4).Value = d1
go1:
End If
Loop
Exit Sub
handle1: ' look any problem
Stop
Resume
End Sub
...
Рейтинг: 0 / 0
Записать в таблицу несколько пятниц от определенной даты.
    #39848024
wladimirrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо! Решил эту задачку.
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Записать в таблицу несколько пятниц от определенной даты.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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