|
Вычисляемое поле по дате
|
|||
---|---|---|---|
#18+
Есть таблица, даны 3 поля: Imya, Chislo, Data. Данные поступают нарастающим итогом: 01.01.1990 imya1 получил 10 печенек, 07.05.1990 imya1 получил 15 печенек (т.е. в период с 01.01.1990 по 07.05.1990 ему дали еще 5 печенек), а 20.09.1991 imya1 получил уже 25 печенек (было 15 печенек, а получил еще 10). Аналогично с imya2: 01.01.1990 imya1 получил 10 печенек, 07.05.1990 imya2 получил 50 печенек. Нужно выводить разницу числа этих печенек в столбце Raznica исходя из сравнения дат. Для первой даты 01.01.1990 - ничего не делать. Следующая дата (07.05.1990) должна сравниваться с предыдущей (01.01.1990) и выводиться разница печенек: 15 - 10 = 5. Предположил, что нужно сделать столбец Raznica как вычисляемое поле, но как посчитать разницу печенек исходя из дат. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 19:15 |
|
Вычисляемое поле по дате
|
|||
---|---|---|---|
#18+
nnaaa, 1. Лучше с такими вопросами сразу обращаться в формум Access , т.к. задача здесь даже не для VBA 2. Наработка моя ниже. По хорошему нужно разово вычислять и повесить на триггер после вставки и обновления, но в Access нет триггеров... Код: sql 1. 2. 3. 4. 5. 6. 7.
Модератор: Тема перенесена из форума "Visual Basic". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 22:14 |
|
Вычисляемое поле по дате
|
|||
---|---|---|---|
#18+
VSVLADно в Access нет триггеров... Аналог триггеров (Data Macro) появились в 2010. Но сложных вычислений лучше там не делать, сильно замедляет работу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 06:08 |
|
Вычисляемое поле по дате
|
|||
---|---|---|---|
#18+
VSVLAD, А как сделать так: если после этих условий поле Разница остается пустым, то заполнить его значением из поля Chislo? Попробовал так, выдает ошибку "Ошибочное или пропущенное зарезервированное слово или аргумент в инструкции Select или неверная пунктуация": Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2016, 13:31 |
|
Вычисляемое поле по дате
|
|||
---|---|---|---|
#18+
Чё-то, мне кажется, что Вы затеяли какую-то ерунду. А в принципе как-то так: Sub my() Dim rs As DAO.Recordset, strSQL, rs1 As DAO.Recordset, strSQL1, a strSQL = "SELECT Imya FROM печеньки GROUP BY Imya" Set rs = CurrentDb.OpenRecordset(strSQL) Do Until rs.EOF strSQL1 = "SELECT chislo, Data, Raznica FROM печеньки WHERE imya='" & rs!imya & "' ORDER BY Data" Set rs1 = CurrentDb.OpenRecordset(strSQL1) a=0 Do Until rs1.EOF rs1.Edit rs1!raznica = rs1!chislo - a a = rs1!chislo rs1.Update rs1.MoveNext Loop rs.MoveNext Loop End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2016, 17:12 |
|
Вычисляемое поле по дате
|
|||
---|---|---|---|
#18+
Пардон. Забыл SRC Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.05.2016, 17:14 |
|
|
start [/forum/topic.php?fid=45&tid=1613493]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 9ms |
total: | 130ms |
0 / 0 |