Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: сумма с накоплением в форме (access2003)
 
 автор: sfugok   (07.11.2008 в 16:41)   личное сообщение
 
 

на табличной форме предпологается: ввод даты и часов работы оборудования а рядом автоматом сумма часов с накоплением. Т.е. ввели дату, ввели часы нажали энтер и рядом в колонке сумма с накоплением появилась
Дата ЧасыОтработано Часывсего
01.11.2008 24 24
02.11.2008 18 42
03.11.2008 20 62
так вот как это сделать (извините, новичек)

  Ответить  
 
 автор: shaucha   (07.11.2008 в 17:57)   личное сообщение
 
 

'===Сумма с накоплением==='

Public Function SumField(Optional var) As Double
Static D As Double
If IsMissing(var) Then
D = 0
Else
D = D + Nz(var, 0)
End If
SumField = D

End Function

'===Нумерация==='

Public Function Numeration(Optional var) As Long
Static N As Long
If IsMissing(var) Then
N = 0
Else
N = N + 1
End If
Numeration = N

End Function

  Ответить  
 
 автор: Дрюня   (07.11.2008 в 17:58)   личное сообщение
 
 

сперва нужно определиться, как сохранять данные
минут у Вас точно не будет? только целые часы?

  Ответить  
 
 автор: sfugok   (07.11.2008 в 18:26)   личное сообщение
 
 

минут не будет, но похоже сохранять надо будет в табл еще и ту колонку с почсчитываемыми суммами часов (т.е. получетеся 3 колонки в табл дата, часыотработанные, суммачасов) а вот эта набежавшая суммачасов будет использоватся.
А если точнее:
пользователь вводит дату, ставит часы, по энтеру считается суммачасов накопленная и тут же она будет сравнивается с некой нормой часов (например 300) если 300 то то, иначе ничего.
итак каждый день

  Ответить  
 
 автор: Дрюня   (07.11.2008 в 18:45)   личное сообщение
 
 

калькулируемые поля, т.е. то, что можно посчитать, хранить в таблице крайне не рекомендуется - могут быть недоразумения

  Ответить  
 
 автор: sfugok   (07.11.2008 в 18:52)   личное сообщение
 
 

похоже да могут быть,
и еще а вдруг ползователь решит исправить часы за какой-то день, соответственно должны пересчитаться все остальные накопительные

  Ответить  
 
 автор: shaucha   (07.11.2008 в 18:48)   личное сообщение
 
 

я использую функции, которые выше привел.
в запросе.
нашел я из где-то на сейте тут. не помню уже.
единственное - необходимо чётко определиться с сортировкой, чтобы результат был корректным в Вашем контексте.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList