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

Форум: MS ACCESS

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

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

 
 

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

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

тема: вставить и вычислить возраст
 
 автор: k@s   (03.02.2008 в 07:36)   личное сообщение
 
 

Есть функция. Как сделать чтобы при вводе данных число месях год рождения в поле1 , в поле2 выводился полный возраст.
Function MyDateDiff(ByVal D1 As Date, D2 As Date) As String
Dim Y As Integer, M As Integer, D As Integer
Y = DateDiff("YYYY", D1, D2)
If DateAdd("YYYY", Y, D1) > D2 Then Y = Y - 1
D1 = DateAdd("YYYY", Y, D1)
M = DateDiff("M", D1, D2)
If DateAdd("M", M, D1) > D2 Then M = M - 1
D1 = DateAdd("M", M, D1)
D = DateDiff("D", D1, D2)
MyDateDiff = Y & " year(s), " & M & " month(s), " & D & " day(s)"
End Function

  Ответить  
 
 автор: час   (03.02.2008 в 09:30)   личное сообщение
9 Кб.
 
 

Видимо вот так

  Ответить  
 
 автор: час   (03.02.2008 в 09:33)   личное сообщение
11 Кб.
 
 

или так..

  Ответить  
 
 автор: k@s   (03.02.2008 в 15:18)   личное сообщение
 
 

Спасибо! Вставил в свою форму работает при вводе данных. Теперь когда открываю форму для редактирования поле0 с датой (так как нужно) а поле2 пустое. Как обновить поле2(для просмотра) без повторного ввода даты в поле0?

  Ответить  
 
 автор: час   (04.02.2008 в 08:04)   личное сообщение
 
 

Добавить кнопочку и на её клик написать тоже самое, что и в событии афтеапдате вощем так же как у поля0.

  Ответить  
 
 автор: ГлазастыйМышь   (04.02.2008 в 08:29)   личное сообщение
 
 

в поле2 в данных пропишите

=Format(Date() - [поле1] ;"yy"" year(s), ""mm"" month(s), ""dd"" day(s)")

и без всяких функций и обновлений

  Ответить  
 
 автор: час   (04.02.2008 в 08:35)   личное сообщение
 
 

Тоже верно и координально....
Вот "ГлазастыйМышь" - молодец.
А мы с вами цацкаемся

  Ответить  
 
 автор: k@s   (04.02.2008 в 18:05)   личное сообщение
 
 

Спасибо всем, Все варианты пригодятся

  Ответить  
 
 автор: zhebov_andrey   (21.05.2009 в 14:44)   личное сообщение
 
 


в поле2 в данных пропишите

=Format(Date() - [поле1] ;"yy"" year(s), ""mm"" month(s), ""dd"" day(s)")


и без всяких функций и обновлений



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

Я сделал вот так =Format(Date() - [Год рождения] ;"уу") во вкладке данные поля "Возраст", а в таблицу как эти данные скопировать???

  Ответить  
 
 автор: osmor   (21.05.2009 в 15:40)   личное сообщение
 
 

А как сделать чтобы данные не только в поле на форме вычислялись, но и добавлялись в таблицу


А зачем?

  Ответить  
 
 автор: zhebov_andrey   (21.05.2009 в 16:04)   личное сообщение
 
 

Ну чтоб в запросе например пошло поле "Возраст", запросы ведь на основе таблиц создаются??? А иначе зачем его вычислять вообще???

  Ответить  
 
 автор: osmor   (21.05.2009 в 17:02)   личное сообщение
 
 

возраст сохранять нужно только если его нужно зафиксировать на какую-то дату (ну например на дату регистрации в БД да и то не обязательно его можно посчитать)
а сохранять в базе возраст на текущую дату вообще бессмысленно, потому что иначе его придется каждый день вычислять заново и сохранять в базе

  Ответить  
 
 автор: zhebov_andrey   (21.05.2009 в 19:50)   личное сообщение
 
 

а что тогда сделать можно??? нужно формировать отчет по возрасту...

  Ответить  
 
 автор: Denis V.   (21.05.2009 в 21:43)   личное сообщение
 
 

У Вас есть функция. Вот её и используйте в запросе. Она должна быть объявлена как Public в каком-нибудь обычном модуле (т.е. не в модуле класса).

  Ответить  
 
 автор: Goblin   (21.05.2009 в 21:48)   личное сообщение
6 Кб.
 
 

Попробуй через запрос. Ну типа того, что вложил. Примерно вычислит. Если еще добавить некоторые функции, то может с точностью до дня. А так +-1 год.

  Ответить  
 
 автор: Lukas   (21.05.2009 в 22:03)   личное сообщение
 
 


+-1 год



Да вы, батенька, шутник.

  Ответить  
 
 автор: Goblin   (21.05.2009 в 23:21)   личное сообщение
 
 

Я в меру своей спорчености гоблина.
Имелось в виду, что datediff от года до года вычислит, не считаясь с днем и месяцем рождения и текущим. А вобще можно и до дня вычислить, примяняя еще и DateAdd

  Ответить  
 
 автор: Goblin   (23.05.2009 в 16:08)   личное сообщение
31 Кб.
 
 

По предыдущему опусу. Может не профессионально, но вроде бы работает. С запроса и с точностью до дня.

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