Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: ShadowOfSun
К сожалению в Access нет триггеров
http://hiprog.com/index.php?option=com_content&task=view&id=35&Itemid=35
Возможный вариант решения
1. создать форму
2. сделать обработку перед сохранением записи в таблице


пример обработки вешаешь на кнопку
   
   Dim MaxDate As Date
   Dim SQL, BeginDate, EndDate, PeopleCode As String
   Dim N As Long
   
   N = 20 ' требуемая разница в днях
   PeopleCode = CStr(Me![КодЧеловека])
   BeginDate = CStr(Me![ДатаПрибытияИзОтпуска])
   EndDate = CStr(Me![ДатаУбытияВОтпуск])
   
   ' получение даты выхода из отпуска для введенного человека
   MaxDate = DMax("[ДатаПрибытияИзОтпуска]", "tblTable", "[КодЧеловека] =" & PeopleCode)
   If Me![ДатаУбытияВОтпуск] - MaxDate < N Then
   ' условие при недостаточной разницы в датах
      MsgBox "Иди работай"
   Else
   ' добавление новой записи в таблицу
      SQL = "INSERT INTO tblTable ( КодЧеловека, ДатаУбытияВОтпуск, ДатаПрибытияИзОтпуска ) VALUES ( " & PeopleCode & ", '" & BeginDate & "', '" & EndDate & "' );"
      DoCmd.RunSQL SQL
      MsgBox "Запись добавлена"
   End If


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.