|
34 Кб. |
|
| Вопрос этот я уже задавал, но без примера и ответа не получил. Вопрос следующий как заставить или привязать как-то фильтрацию к значениям только своей строки. Т.к. кто-нибудь может ошибиться и не закончив выборку в одной строке перескочить в другую строку и продолжить выбор уже там, см. строку 6 в примере. Может существует обработчик ошибок какой-нибудь? Или способ привязки к текущей строке? | |
|
| |
|
|
|
| Можно сделать следующее:
делаем Глобальную переменную Global
при загрузке
Global =me!Счет ' первая запись
на Текущая запись вешаем
If me!Счет<>Global then
значит перешли на другую запись,
set Prov=me.recordsetclone
Prov.FindFirst("счет =" & Global " and (Nz(вид,0) =0 or Nz(тип,0)=0 or Nz(поставщик,0)=0)")
if NoMatch = False then
сообщение об ошибке и перемещаем Фокус на ошибочную запись.
else
Если все ОК то - присваиваем Global новый Код записи
Global =me!Счет
end if
end if
| т.о. юзер никак не сможет соскочить с записи если она не полная.
| |
|
| |
|
|
|
| спасибо за ответ, попробую. | |
|
| |
|
|
|
| Можно по другому, если работаем с временной таблой. При команде Сохранить (Провести) - когда заносим все из временной таблы в основную проверка на наличие пустых полей
set Prov=currentdb.Openrecordset("select * from заказ where Nz(вид,0) =0 or Nz(тип,0)=0 or Nz(поставщик,0)=0")
if prov.eof=false -> вой про ошибки и требование нужные поля заполнить, и не сохраняем пока неисправят, или как вариант эти записи при переносе в основную таблу не учитывать (бедные юзеры). | |
|
| |
|
60 Кб. |
|
| Вот как реализована "защита" от подобных ошибок в Ms Money 5.0: | |
|
| |
|
|
|
| Большое спасибо, а то я уже и не знал, что делать. Как-будто с этой проблемой никто кроме меня никогда не сталкивался. Нигде не отвечали. | |
|
| |