Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
Приветствую всех! Помогите составить код. Мне надо записать в таблицу Payments в поле DataP даты 30-ти пятниц, которые наступят последовательно после даты, которую я записываю в первую строку в поле DataP.
5 авг 19, 15:59    [21942194]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19285
Сделай таблицу с числами от 1 до 30. Добавь её в источник запроса и прибавляй к дате их, умножив на 7. Чтобы получить пятницу - отними от даты номер её дня недели и прибавь... ну там сам посчитаешь сколько.
5 авг 19, 16:53    [21942237]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
как вариант:
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
5 авг 19, 19:06    [21942387]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr
...Мне надо записать в таблицу Payments в поле DataP даты 30-ти пятниц, которые наступят последовательно после даты, которую я записываю в первую строку в поле DataP.
В таблицу это не записывают. Писать в табл.дату отстоящую от уже внесенной на 30 пятниц(тем более перебрать все 30 значений) есть излишествующие данные (Они всегда вычисляются или процедурой или функцией.Записывать в поле тридцать значений это уж слишком-Считаю что даже 2 много)
Совершенно другой смысл-добавить в тбл. 30 записей с датами,но не зная логики работы и решаемые БД задачи сказать что-то определенное невозможно
5 авг 19, 19:26    [21942395]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
Akina, спасибо за идею, что-то получается.
5 авг 19, 20:10    [21942431]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
sdku
wladimirrr
...Мне надо записать в таблицу Payments в поле DataP даты 30-ти пятниц, которые наступят последовательно после даты, которую я записываю в первую строку в поле DataP.
В таблицу это не записывают. Писать в табл.дату отстоящую от уже внесенной на 30 пятниц(тем более перебрать все 30 значений) есть излишествующие данные (Они всегда вычисляются или процедурой или функцией.Записывать в поле тридцать значений это уж слишком-Считаю что даже 2 много)
Совершенно другой смысл-добавить в тбл. 30 записей с датами,но не зная логики работы и решаемые БД задачи сказать что-то определенное невозможно

Да, добавить 30 записей с датами пятниц.
5 авг 19, 20:11    [21942433]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr,
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
5 авг 19, 20:57    [21942480]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
sdku
wladimirrr,
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 пятниц? Вы писали, что можно с помощью функции это сделать. Можно подробнее?
7 авг 19, 13:49    [21943778]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr
А если нужно не добавить, а записать в существующие записи таблицы 30 пятниц? Вы писали, что можно с помощью функции это сделать. Можно подробнее?
Для этого нужно знать в какие записи (критерий) и от какой даты считать
7 авг 19, 15:06    [21943859]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
Вдогонку:а про подчиненную таблицу не думали?
7 авг 19, 15:29    [21943889]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
sdku
wladimirrr
А если нужно не добавить, а записать в существующие записи таблицы 30 пятниц? Вы писали, что можно с помощью функции это сделать. Можно подробнее?
Для этого нужно знать в какие записи (критерий) и от какой даты считать

Что бы конкретизировать задачу прикрепляю бд.
Нужно при нажатии кнопки Funded записать в поле Date_scheduled первой записи текущую дату, а в последущие записи в это поле записать даты 30-ти пятниц после текущей даты.

К сообщению приложен файл (bd3.rar - 26Kb) cкачать
7 авг 19, 16:03    [21943932]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr,
посмотрите-так?

К сообщению приложен файл (tmp1.rar - 32Kb) cкачать
7 авг 19, 19:20    [21944120]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
вдогонку:имейте ввиду-округление сделано не корректно (сумма оплат не совпадет с занесенной на главной форме)
7 авг 19, 19:30    [21944127]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
sdku
wladimirrr,
посмотрите-так?

К сожалению, нет.
Суммы оплат ставятся в таблицу раньше, чем даты "пятниц". Т.е. оплаты уже стоят и надо в эти записи вставить даты пятниц. Можно не 30, а по количеству оплат. Оплаты все разные и могут быть не равны друг другу. Будем считать, что они ставятся вручную.
7 авг 19, 21:04    [21944162]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr,
чё-то не понял я логику:если оплата(взнос) состоялся в среду почему нужно ставить дату(заведомо ложную-пятницу) о проведении оплаты.Может просто подсчитывать сумму взносов и остаток на данную(или любую) дату и иметь историю оплат
7 авг 19, 22:29    [21944187]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
и посмотрите внимательно:поле взнос это график платежей(план),а поле факт это фактическая оплата,можно добавить поле фактДата и заполнять вручную(а как иначе?)
7 авг 19, 22:34    [21944191]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
sdku
wladimirrr,
чё-то не понял я логику:если оплата(взнос) состоялся в среду почему нужно ставить дату(заведомо ложную-пятницу) о проведении оплаты.Может просто подсчитывать сумму взносов и остаток на данную(или любую) дату и иметь историю оплат

Это формирование плана-графика оплат. Сначала формируются суммы и количество оплат. Они вносятся в таблицу. Потом вставляются даты. Первая дата - текущая, остальные даты - пятницы. Я в примере бд смоделировал ситуацию, добавлять и менять там ничего не надо. Исходная позиция на рис1., результат работы функции или процедуры на рис2.

К сообщению приложен файл. Размер - 36Kb
7 авг 19, 23:18    [21944214]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
рис2.

К сообщению приложен файл. Размер - 39Kb
7 авг 19, 23:18    [21944216]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
07.08.2019 это дата текущая, затем записываем даты пятниц по неделям.
7 авг 19, 23:20    [21944217]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr
Это формирование плана-графика оплат. Сначала формируются суммы и количество оплат. Они вносятся в таблицу. Потом вставляются даты....
sdku
и посмотрите внимательно:поле взнос это график платежей(план),а поле факт это фактическая оплата,можно добавить поле фактДата и заполнять вручную(а как иначе?)
Все это напоминает разговор слепого с глухим.
Интересно, Вы хоть читаете и вдумываетесь в то, что Вам пишут????
8 авг 19, 02:34    [21944266]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
sdku
wladimirrr
Это формирование плана-графика оплат. Сначала формируются суммы и количество оплат. Они вносятся в таблицу. Потом вставляются даты....
sdku
и посмотрите внимательно:поле взнос это график платежей(план),а поле факт это фактическая оплата,можно добавить поле фактДата и заполнять вручную(а как иначе?)
Все это напоминает разговор слепого с глухим.
Интересно, Вы хоть читаете и вдумываетесь в то, что Вам пишут????

Я же конкретно и, надеюсь, понятно изложил суть задачи. Сделал простой пример бд (см. выше). Ничего добавлять не нужно, вопрос чисто технический. Можно ли записать даты (1-я текущая, остальные - пятницы) в уже имеющиеся записи с заполненными суммами платежей?
8 авг 19, 12:59    [21944608]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr,
для тех кто в танке:
-заполняем главную форму
-"послеОбновления"(нажатия Enter) поля [сумма] заполняется подчиненная форма(соответственно таблица-источник) план платежей [датаО] -дата платежа план(каждую пятницу начиная от даты в поле[дата])и [взнос] c запланированным размером(в данном случае [сумма]/30 а вообще любая Ваша формула)
-поля [факт]-фактический платеж и добавленное [фктическаяДатаПлатежа]заполняются вручную при совершении платежа и для формирования чека(приходного ордера и т.д)
-что не так???
8 авг 19, 13:28    [21944655]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6180
wladimirrr
.....Да, добавить 30 записей с датами пятниц.
wladimirrr
...Ничего добавлять не нужно, вопрос чисто технический.
Стой там-иди сюда,однако(сказал чукча,так ничего и не поняв)
А почему план выплат создается не одновременно с внесением суммы заказа(договора,контракта)-обычно клиент хочет видеть план платежей одновременно с договором и, в случае обоюдного согласия, с возможностью его корректировки
8 авг 19, 13:49    [21944681]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
ROI
Member

Откуда: г. Тюмень
Сообщений: 1785
sdku
wladimirrr
.....Да, добавить 30 записей с датами пятниц.
wladimirrr
...Ничего добавлять не нужно, вопрос чисто технический.
Стой там-иди сюда,однако(сказал чукча,так ничего и не поняв)Картинка с другого сайта.
А почему план выплат создается не одновременно с внесением суммы заказа(договора,контракта)-обычно клиент хочет видеть план платежей одновременно с договором и, в случае обоюдного согласия, с возможностью его корректировки

Вот и займи у них денюжков (как насчитают "мама не горюй")Картинка с другого сайта.
8 авг 19, 13:59    [21944693]     Ответить | Цитировать Сообщить модератору
 Re: Записать в таблицу несколько пятниц от определенной даты.  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 316
sdku
wladimirrr,
для тех кто в танке:
-заполняем главную форму
-"послеОбновления"(нажатия Enter) поля [сумма] заполняется подчиненная форма(соответственно таблица-источник) план платежей [датаО] -дата платежа план(каждую пятницу начиная от даты в поле[дата])и [взнос] c запланированным размером(в данном случае [сумма]/30 а вообще любая Ваша формула)
-поля [факт]-фактический платеж и добавленное [фктическаяДатаПлатежа]заполняются вручную при совершении платежа и для формирования чека(приходного ордера и т.д)
-что не так???

Все не так!
Заполнять поля (сумма) не нужно. Они уже предварительно заполнены (один спец просчитывает и записывает суммы, затем другой специалист должен проставить текущую дату и остальные даты-пятницы). Надо решить, как в эти записи автоматически вставить даты.
Я написал:"ничего добавлять не надо", имея в виду, ничего придумывать и менять в логике работы не надо. Что непонятного? Кто из нас в танке? Чем стебаться, предложите как решить задачу.
9 авг 19, 22:00    [21945965]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить