![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() у меня в БД (Access, ADOConnection,ADOTable) есть поле дня рождения типа дата\время. В программе я предусматриваю функцию напоминания о дне рождения за три дня.
Использовала я вот такой код: Код:
n:=Form1.DBGrid1.DataSource.DataSet.RecordCount; for i:=1 to n do begin Vday:=DayOf(DBGrid1.Columns[13].Field.AsDateTime); Vmonth:=MonthOf(DBGrid1.Columns[13].Field.AsDateTime); if(Vmonth=MonthOf(Date))and((Vday-DayOf(Date)<3)and(Vday-DayOf(Date)>=0)) then begin case Vday-DayOf(Date) of 0: Day:='сегодня'; 1: Day:='завтра'; 2: Day:='послезавтра'; end; ShowMessage('У ФИО День рождения '+Day); end; DBGrid1.DataSource.DataSet.Next; или вот такой: Код:
1 2 if (DayOfTheYear(DataModule2.ADOTable1.Fields[13].AsDatetime)-DayOfTheYear(Now)=3) and (MonthOfTheYear(DataModule2.ADOTable1.Fields[13].AsDatetime)=MonthOfTheYear(Now)) then ShowMessage(IntToStr('Happy Birthday!')); Но возникает ошибка типа EAccessViolation на первых строчках выше приведенных кодов. В чем может быть проблема ? Заранее спасибо ![]() |