Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Задачка на VB-6 или SQL?


Автор: kivan 1.5.2006, 14:18
Доброго дня всем!!
База тех же сотрудников!
Имеются поля "День рождения(дата)","Песионер(логический)"
Как сделать так,чтобы при заполнении поля "День рождения",он автоматически проставлял галочку в поле,"Песионер" При условии,что женщина выходит на пенсию в 55 лет, а мужчина в 60.
Если можно примерчик,пожалуйста... smile  

Автор: Akina 2.5.2006, 13:34
Где происходит заполнение (в таблице, в форме, программно, еще где)?
Откуда возьмется пол? или есть такое поле?
Какой в этом вообще смысл (у меня есть не один знакомый-пенсионер в возрасте менее 50 лет...)? 

Автор: kivan 2.5.2006, 13:49
Цитата(Akina @  2.5.2006,  13:34 Найти цитируемый пост)
Где происходит заполнение

 в форме.

Цитата(Akina @  2.5.2006,  13:34 Найти цитируемый пост)
Откуда возьмется пол? или есть такое поле?

Да.

Цитата(Akina @  2.5.2006,  13:34 Найти цитируемый пост)
Какой в этом вообще смысл (у меня есть не один знакомый-пенсионер в возрасте менее 50 лет...)? 

Я пример привел, может и 60, 65,неважно.А смысл в том чтобы, автоматизировать систему, чтобы она сама просчитывала и проставляла (Да/Нет).в форму smile

Добавлено @ 13:50 
Цитата(Akina @  2.5.2006,  13:34 Найти цитируемый пост)
(у меня есть не один знакомый-пенсионер в возрасте менее 50 лет...)?  


Akina, не совсем понял smile   

Автор: Akina 2.5.2006, 15:09
Цитата(kivan @  1.5.2006,  15:18 Найти цитируемый пост)
Как сделать так,чтобы при заполнении поля "День рождения",он автоматически проставлял галочку в поле,"Песионер" При условии,что женщина выходит на пенсию в 55 лет, а мужчина в 60.

Код
' draft code
Private Sub ДеньРождения_change()
Age = DateDiff("yyyy", ДеньРождения.Value, BirthDate)
If ( Пол.Value = "М" AND Age >= 60 ) Or ( Пол.Value = "Ж" AND Age >= 55 ) Then
   Пенсионер.Value=True
End If
End Sub

Цитата(kivan @  2.5.2006,  14:49 Найти цитируемый пост)
не совсем понял 

А чего понимать? На пенсию можно выйти гораздо раньше указанного тобой срока.   

Автор: kivan 9.5.2006, 22:31
Код

Private Sub ДатаРождения_Change()
Dim Age As Variant
Age = DateDiff("yyyy", ДатаРождения.Value, Now)
If (Пол.Value = "М" And Age >= 60) Or (Пол.Value = "Ж" And Age >= 55) Then
  Пенсионер.Value = True
ElseIf (Пол.Value = "М" And Age < 60) Or (Пол.Value = "Ж" And Age < 55) Then
    Пенсионер.Value = False
End If
End Sub


 Сделал так, но почему то работает через раз!
 В чем может быть причина smile  

Автор: Akina 10.5.2006, 10:20
Цитата(kivan @  9.5.2006,  23:31 Найти цитируемый пост)
Сделал так, но почему то работает через раз!
 В чем может быть причина

Трассируй, разбирайся... 

Автор: ustas 1.6.2006, 14:39
Цитата(kivan @ 1.5.2006,  14:18)
Имеются поля "День рождения(дата)","Песионер(логический)"

А зачем иметь поле "Пенсионер", если есть поле "ДеньРождение" и правило "женщина выходит на пенсию в 55 лет, а мужчина в 60". Не проще выводить всех пенсионеров запросом. При этом не нужно корректировать поле "Пенсионер" для запоненных сотрудников, выходящих на пенсию. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)