|
|
|
| Есть функция. Как сделать чтобы при вводе данных число месях год рождения в поле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 | |
|
| |
|
9 Кб. |
|
| Видимо вот так | |
|
| |
|
11 Кб. |
|
| или так.. | |
|
| |
|
|
|
| Спасибо! Вставил в свою форму работает при вводе данных. Теперь когда открываю форму для редактирования поле0 с датой (так как нужно) а поле2 пустое. Как обновить поле2(для просмотра) без повторного ввода даты в поле0? | |
|
| |
|
|
|
| Добавить кнопочку и на её клик написать тоже самое, что и в событии афтеапдате вощем так же как у поля0. | |
|
| |
|
|
|
| в поле2 в данных пропишите
=Format(Date() - [поле1] ;"yy"" year(s), ""mm"" month(s), ""dd"" day(s)")
|
и без всяких функций и обновлений | |
|
| |
|
|
|
| Тоже верно и координально....
Вот "ГлазастыйМышь" - молодец.
А мы с вами цацкаемся | |
|
| |
|
|
|
| Спасибо всем, Все варианты пригодятся | |
|
| |
|
|
|
|
в поле2 в данных пропишите
=Format(Date() - [поле1] ;"yy"" year(s), ""mm"" month(s), ""dd"" day(s)")
и без всяких функций и обновлений
|
А как сделать чтобы данные не только в поле на форме вычислялись, но и добавлялись в таблицу???
Я сделал вот так =Format(Date() - [Год рождения] ;"уу") во вкладке данные поля "Возраст", а в таблицу как эти данные скопировать??? | |
|
| |
|
|
|
| А как сделать чтобы данные не только в поле на форме вычислялись, но и добавлялись в таблицу |
А зачем? | |
|
| |
|
|
|
| Ну чтоб в запросе например пошло поле "Возраст", запросы ведь на основе таблиц создаются??? А иначе зачем его вычислять вообще??? | |
|
| |
|
|
|
| возраст сохранять нужно только если его нужно зафиксировать на какую-то дату (ну например на дату регистрации в БД да и то не обязательно его можно посчитать)
а сохранять в базе возраст на текущую дату вообще бессмысленно, потому что иначе его придется каждый день вычислять заново и сохранять в базе | |
|
| |
|
|
|
| а что тогда сделать можно??? нужно формировать отчет по возрасту... | |
|
| |
|
|
|
| У Вас есть функция. Вот её и используйте в запросе. Она должна быть объявлена как Public в каком-нибудь обычном модуле (т.е. не в модуле класса). | |
|
| |
|
6 Кб. |
|
| Попробуй через запрос. Ну типа того, что вложил. Примерно вычислит. Если еще добавить некоторые функции, то может с точностью до дня. А так +-1 год. | |
|
| |
|
|
|
|
Да вы, батенька, шутник. | |
|
| |
|
|
|
| Я в меру своей спорчености гоблина.
Имелось в виду, что datediff от года до года вычислит, не считаясь с днем и месяцем рождения и текущим. А вобще можно и до дня вычислить, примяняя еще и DateAdd | |
|
| |
|
31 Кб. |
|
| По предыдущему опусу. Может не профессионально, но вроде бы работает. С запроса и с точностью до дня. | |
|
| |