Страница 1 из 1

Access. SQL. Как отключить серверный фильтр

Добавлено: 04 май 2009, 14:15
Putincev
Добрый день!
Проект Access. БД на SQL 2000.

Вызываю из процедуры форму, источником записей для которой является запрос (SELECT tblZakaz.* FROM tblZakaz ORDER BY Zakaz):

stDocName = "frmProsmotrZakazovPakOt"
stLinkCriteria = "[Status]='Исполнение'"
DoCmd.OpenForm stDocName, , , stLinkCriteria


Выбираю необходимую запись и по кнопке вызываю другую форму, источником записей для которой является запрос (SELECT tblPakOt_Form_4.* FROM tblPakOt_Form_4 ORDER BY ID_Paketa):

strDocName = "frmPakOt_Form"
strLinkCriteria = "[Zakaz]=" & Me.ctlZakaz
DoCmd.OpenForm strDocName, , , strLinkCriteria


Из этой формы по кнопке вызываю следующую форму, источником записей для которой является запрос (SELECT tblSpecific_Pak_Otgruzki.* FROM tblSpecific_Pak_Otgruzki ORDER BY ID_Tower, N_Section, Pos):

stDocName = "frmSpecific_PaketOtgruzki"
strLinkCriteria = "[Zakaz]=" & Forms!frmProsmotrZakazovPakOt!ctlZakaz
DoCmd.OpenForm stDocName, , , strLinkCriteria


В этой форме произвожу обработку (см. вложенный файл), после которой закрываю форму:

Forms!frmPakOt_Form.Requery
stDocName = "frmSpecific_PaketOtgruzki"
DoCmd.Close acForm, stDocName


При этом очень часто форма запоминает фильтр как серверный и дальнейшая работа невозможна.

Как отключить запоминание формой серверного фильтра?
Заранее благодарю.

Re: Access. SQL. Как отключить серверный фильтр

Добавлено: 08 май 2009, 20:23
Teslenko_EA
Здравствуйте Putincev.
Рекомендую совсем отказаться от использования фильтра формы.
если источник строк (SQL конструкция) будет подключаться по событию открытия формы, такой проблемы не будет. Конструкция может быть подобной:

Код: Выделить всё

Dim s$
Const s0$ = "SELECT tblPakOt_Form_4.* FROM tblPakOt_Form_4 WHERE [Zakaz]=", s1$ = "  ORDER BY ID_Paketa
   s = s0 & Me.ctlZakaz & s1
   Form_frmSpecific_PaketOtgruzki.RecordSource = s
   ...
это избавит Вас от "проблемы" и не будет потребности в обновлении. (...Form.Requery)
конструкции JET (DoCmd.RunSQL SQL_Vybor) замените на ADO (con1.Execute SQL_Vybor), это тоже облегчит работу приложения и отпадет потребность в "борьбе" с системными сообщениями (DoCmd.SetWarnings False)
Евгений.