У меня есть база данных Access с двумя большими таблицами, в каждой из которых много полей даты. Каждое поле Дата имеет свои индивидуальные действительные даты от какого-то дня в прошлом до сегодняшнего дня. Поэтому при запуске я использовал следующий код VBA в течение многих лет
fld.ValidationRule = "(>= #" & Strings.Format(fldFirstDate, "Short Date") & "# AND " & _
" <= #" & Strings.Format(DateTime.Date, "Short Date") & "#) OR=0 or IS NULL"
fld.ValidationText = "Enter a valid date between " & Strings.Format(fldFirstDate, "Short Date") & " and now."
, и он работал нормально. fldFirstDate - это значение даты, которое было найдено в другой таблице.
Недавно добавлено еще несколько полей даты в одну большую таблицу, каждое из которых имеет свою первую действительную дату. И я начал получать сообщение об ошибке 3309.
Поэтому я упростил ValidationRule, чтобы он не включал выполнение до сегодняшнего дня, и код работает нормально. Конечно, несчастный пользователь теперь может вводить недействительные даты в будущем ...
Существуют ли ограничения по размеру для хранилища правил проверки полей таблицы?